<el-select> 当绑定的值在选项中不存在时,不显示其对象的key
若要实现在 el-select 组件中当绑定的值在选项中不存在时,不显示其对象的 key,可以使用 slot-scope 和 v-if 来进行判断。
首先,在 el-select 中添加一个 slot-scope,来访问选项对象和当前选中的值:
<el-select v-model="selectedOption">
<el-option
v-for="(option, index) in options"
:key="option.value"
:label="option.label"
:value="option.value"
:disabled="option.disabled"
>
<template slot-scope="{ option }">
{{ option.label }}
</template>
</el-option>
</el-select>
接着,使用一个计算属性来判断当前选中的值是否存在于选项中:
computed: {
selectedOptionLabel() {
const option = this.options.find(opt => opt.value === this.selectedOption);
return option ? option.label : '';
}
}
最后,在 el-select 中添加一个 v-if 判断,当选中的值存在于选项中时,显示其 label,否则不显示:
<el-select v-model="selectedOption">
<el-option
v-for="(option, index) in options"
:key="option.value"
:label="option.label"
:value="option.value"
:disabled="option.disabled"
>
<template slot-scope="{ option }">
<span v-if="selectedOptionLabel === option.label">
{{ option.label }}
</span>
</template>
</el-option>
</el-select>