el-select绑定值遇到的问题小结
作者:前端小怪兽zmy
碰到一个问题,选择框的数据是后端传过来的,下拉框的数据也是后端传过来的,但是打开下拉框时,发现数据没有高亮,最后通过只要选择框v-model给的值和option的value绑定的值一致,就可以高亮,感兴趣的朋友一起看看吧
el-select绑定值的坑
碰到一个问题,选择框的数据是后端传过来的,下拉框的数据也是后端传过来的,但是打开下拉框时,发现数据没有高亮。
最后发现,只要选择框v-model给的值和option的value绑定的值一致,就可以高亮。
大多数情况下,都绑定的是value值(下图的name),所以发现不了这个问题。
其实两个都绑定id也是可以的,只要两个绑定的一致就行。
<el-select v-model="form" class="m-2" placeholder="Select" size="large"> <el-option v-for="item in options" :key="item.value" :label="item.name" :value="item.id" /> //value绑定的值是id </el-select> const options = [ { id: '123', name: '名字一' }, { id: '456', name: '名字二' }, { id: '789', name: '名字三' } ] let form= ref('123') //v-model给的值也是id
不是说,form给的值是什么就显示什么,这里form给123,但是选择框显示的还是名字一。
因此,option的label决定了显示。
补充:
elment-plus中el-select组件绑定对象踩坑
<el-select v-model="row.way" value-key="id" clearable filterable placeholder="请选择主线路"> <el-option v-for="(item,index) in listWay" :key="index" :label="item.name" :value="item"/> </el-select>
以上时可以正常执行的代码,其中row.way是一个对象。踩坑记录一下(尤其第一个):
1、el-select绑定对象不仅要协商v-model,并且一定要加上value-key。不然选啥都不变,像个傻子一样;
2、v-for中两种写法,一个是"item in list" 或者 "(item,index) in list"
3、el-select中v-model绑定对象,则el-option中 :value也必须是对象
到此这篇关于el-select绑定值的坑的文章就介绍到这了,更多相关el-select绑定值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!