el-cascader 获取他的value和label
时间: 2023-11-10 08:18:46 浏览: 95
el-cascader组件可以通过v-model绑定一个数组,数组中的每个元素都是一个对象,其中包含value和label两个属性。value属性表示当前级别的选中值,label属性表示当前级别的选中显示文本。
例如,可以这样使用el-cascader组件:
```html
<template>
<div>
<el-cascader
v-model="selectedOptions"
:options="options"
@change="handleChange"
></el-cascader>
</div>
</template>
<script>
export default {
data() {
return {
selectedOptions: [], // 绑定的数组,存储选中的值
options: [ // cascader的选项数据
{
value: 'option1',
label: 'Option 1',
children: [
{
value: 'suboption1',
label: 'Suboption 1'
},
{
value: 'suboption2',
label: 'Suboption 2'
}
]
},
{
value: 'option2',
label: 'Option 2',
children: [
{
value: 'suboption3',
label: 'Suboption 3'
},
{
value: 'suboption4',
label: 'Suboption 4'
}
]
}
]
};
},
methods: {
handleChange(value) {
// 当选中值发生改变时触发此方法
console.log(value); // 输出当前选中的value数组
console.log(this.getLabelByValue(value)); // 输出当前选中的label数组
},
getLabelByValue(value) {
// 根据value数组获取label数组
const labels = [];
for (let i = 0; i < value.length; i++) {
const option = this.getOptionByValue(value[i]);
if (option) {
labels.push(option.label);
}
}
return labels;
},
getOptionByValue(value) {
// 根据value获取选项对象
for (let i = 0; i < this.options.length; i++) {
if (this.options[i].value === value) {
return this.options[i];
}
}
return null;
}
}
};
</script>
```
在上面的示例中,当选中值发生改变时,会触发`handleChange`方法,在该方法中通过打印`value`数组可以获取当前选中的value数组,通过调用`getLabelByValue`方法可以获取当前选中的label数组。`getLabelByValue`方法会根据value数组依次获取对应的选项对象,然后提取出label属性。
阅读全文