实现ElementUI中两个-select在v-for下选择联动效果
时间: 2024-03-26 11:39:47 浏览: 56
可以通过监听第一个-select的选中值,动态修改第二个-select的选项列表来实现联动效果。具体实现步骤如下:
1. 在第一个-select中使用v-model绑定选中值,并监听change事件。
2. 在change事件中根据选中值过滤出第二个-select需要展示的选项列表,并将其赋值给第二个-select的options属性。
3. 在第二个-select中同样使用v-model绑定选中值。
下面是示例代码:
```
<template>
<div>
<el-select v-model="selectedItem" @change="handleItemChange">
<el-option v-for="item in items" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
<el-select v-model="selectedSubItem">
<el-option v-for="subItem in subItems" :key="subItem.value" :label="subItem.label" :value="subItem.value"></el-option>
</el-select>
</div>
</template>
<script>
export default {
data() {
return {
items: [
{ label: '选项1', value: '1' },
{ label: '选项2', value: '2' },
{ label: '选项3', value: '3' },
],
subItems: [
{ label: '子选项1', value: '1' },
{ label: '子选项2', value: '2' },
{ label: '子选项3', value: '3' },
],
selectedItem: '',
selectedSubItem: '',
};
},
methods: {
handleItemChange() {
// 根据选中值过滤出第二个-select需要展示的选项列表
const selectedValue = this.selectedItem;
this.subItems = this.subItems.filter(subItem => subItem.value.startsWith(selectedValue));
// 重置第二个-select的选中值
this.selectedSubItem = '';
},
},
};
</script>
```
在上面的代码中,第一个-select中有三个选项(选项1、选项2和选项3),第二个-select中有三个选项(子选项1、子选项2和子选项3)。当第一个-select中选中选项1时,第二个-select中应该只展示以1开头的选项(即子选项1)。当第一个-select中选中选项2时,第二个-select中应该只展示以2开头的选项(即子选项2)。当第一个-select中选中选项3时,第二个-select中应该只展示以3开头的选项(即子选项3)。
阅读全文