讓element UI的select選擇器 :label 的值經過函式處理

Chasing stars發表於2020-10-24

1、問題產生

最近用element UI選擇器的時候產生了一個問題,它的label只能是陣列物件裡面的值,這樣很不方便,於是我試著用函式處理 :label 的內容,發現有效,於是記錄一下。

2、具體示例

1.開始的select程式碼

<template>
  <el-select v-model="value" filterable placeholder="請選擇">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
  </el-select>
</template>

<script>
  export default {
    data() {
      return {
        options: [{
          value: '選項1',
          label: '黃金糕'
        }, {
          value: '選項2',
          label: '雙皮奶'
        }, {
          value: '選項3',
          label: '蚵仔煎'
        }, {
          value: '選項4',
          label: '龍鬚麵'
        }, {
          value: '選項5',
          label: '北京烤鴨'
        }],
        value: ''
      }
    }
  }
</script>

2.開始的select選擇器label選項

輸出了data裡面物件的label屬性
在這裡插入圖片描述

3.修改後的程式碼

<template>
  <el-select v-model="value" filterable placeholder="請選擇">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="change(item)"
      :value="item.value">
    </el-option>
  </el-select>
</template>

<script>
  export default {
    data() {
      return {
        options: [{
          value: '選項1',
          label: '黃金糕'
        }, {
          value: '選項2',
          label: '雙皮奶'
        }, {
          value: '選項3',
          label: '蚵仔煎'
        }, {
          value: '選項4',
          label: '龍鬚麵'
        }, {
          value: '選項5',
          label: '北京烤鴨'
        }],
        value: ''
      }
    },
  methods:{
      //改變展示內容
    change(item) {
      if (item.label == undefined) {
        return;
      }
      return (item.label.substr(0, 1));
    },
  }    
  }
</script>

4.修改程式碼後的select選擇器label選項

只是展示了一個字,與函式實現的功能一樣。
在這裡插入圖片描述

相關文章