element-ui中select组件v-model绑定值为对象及设定初始值后,不能重新选择的问题

对于下拉框组件,当需要使用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属性值就可以,其余属性可多可少,一般情况都是按照示例来操作

示例:

在回显后有初始值的情况下,不能修改,也不能选择其他选项

图片[1]-element-ui中select组件v-model绑定值为对象及设定初始值后,不能重新选择的问题-一一网
如图,默认值为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
喜欢就支持一下吧
点赞0 分享