適用場景:因爲實際項目開發中,el-option的數據肯定是從後臺獲取的,後臺不一定給我所有想要的數據,就比如後臺返給我的是若干個對象組成的數組,這個數組組成下拉框,但是我們頁面顯示要求這個下拉框裏的部分可選部分不可選,那要怎麼解決這個問題呢?這就涉及到給數組對象統一添加字段和el-option實現部分不可選功能的問題了。核心代碼如下:
1.template部分:
<el-select>
<el-option v-for="(item,i) in this.arrAfter :key="i" :label="item.name" :value="item.code" :disabled="item.disabled"/>
</el-select>
其中,this.arrAfter是我們最後處理的結果,:disabled="item.disabled"是爲了實現不可選功能,這裏假設後臺傳給我們的對象形式爲{name:'xxx',code:'xxx'},所以要給每個對象加一個disabled屬性,才能實現不可選功能。
2.script部分
mounted(){
// 從後臺獲取數組,賦值給原數組
let result = response.data
// 聲明一個空數組用來村新數組
this.arrAfter = []
// 給要添加的字段賦值
result.disabled = true
// 循環原數組
result.forEach(item=>{
// 要添加的新字段
item.disabled = result.disabled
this.arrAfter.push(item)
})
//以上步驟實現了arrAfter爲result數組新增了字段的功能,下面實現部分可選功能
for(let i=0;i<this.arrAfter.length;i++){
if(i%2 == 0){
this.arrAfter[i].disabled = false
}
}
}