对于下拉框组件,当需要使用options里面其他属性的时候,v-model绑定单个值无法解决需求的时候,需要绑定成对象
<el-select
v-model="formData.brand"
value-key="id"
placeholder="请选择品牌"
<el-option
v-for="item in brands"
:key="item.id"
:label="item.name"
:value="item">
</el-option>
</el-select>
复制代码
在el-select添加value-key=”id”属性,el-option中添加:key=”item.id”属性。其中value-key的值与key绑定的属性值(该属性值不能是对象)对应
回显:
在回显的时候v-model绑定的值也必须是对象,也就是formData.brand必须是个对象,且这个对象中必须含有value-key绑定的属性(同名)。实际上,给model赋值的对象含有id属性值就可以,其余属性可多可少,一般情况都是按照示例来操作
示例:
在回显后有初始值的情况下,不能修改,也不能选择其他选项
如图,默认值为Dondi,能够正确的赋值,后续选择了世达尔star,formData.brand会正确的变化,但是页面展示没有对应的变化
经过尝试发现,数据更改没有触发render,所以用$forceUpdate()强制更新视图
<el-select
v-model="formData.brand"
value-key="id"
placeholder="请选择品牌"
@change="$forceUpdate()">
<el-option
v-for="item in brands"
:key="item.id"
:label="item.name"
:value="item">
</el-option>
</el-select>
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END