使用方法
element-ui select 选择器官网例子
v-model的值为当前被选中的el-option的 value 属性值,即:value=
绑定的值item.id
<template>
<el-select v-model="value" placeholder="请选择">
<el-option v-for="item in options" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select>
</template>
<script>
export default {
data() {
return {
options: [{
id: '选项1',
label: '黄金糕',
price: 15
}, {
id: '选项2',
label: '双皮奶',
price: 7
}, {
id: '选项3',
label: '蚵仔煎',
price: 24
}, {
id: '选项4',
label: '龙须面',
price: 20
}, {
id: '选项5',
label: '北京烤鸭',
price: 50
}],
value: ''
}
}
}
</script>
问题描述
通常情况下,我们只需要获取列表某一项的一个属性值,所以这时v-model只需要一个属性值如item.id
,但是,如果我们需要同时获取列表某一项的多个属性,那么让v-model直接绑定item
就会来的简单方便很多
,所以直接将代码修改如下
<template>
<el-select v-model="value" placeholder="请选择">
<el-option v-for="item in options" :key="item.id" :label="item.label" :value="item"></el-option>
</el-select>
</template>
将value的值直接绑定item,这样v-model就能拿到一整个对象,但是我们操作的时候会发现,第一次能够很好的选择,但是一旦我们想要更改第一次选择的结果,就会出现下图所示问题,选项没办法选中啦!
解决方案
再次查看官网,发现漏看了一个很重要的信息!
如果 Select 的绑定值为对象类型,请务必指定 value-key 作为它的唯一性标识。
再次修改代码
<template>
<el-select v-model="value" value-key="id" placeholder="请选择">
<el-option v-for="item in options" :key="item.id" :label="item.label" :value="item"></el-option>
</el-select>
</template>
将value-key绑定选项的某一项的唯一属性,问题就解决啦~撒花❀~