需求:
根据前一个表单项用户选取的值,动态选择后面的表单项应该绑定哪个属性。比如前者选了1,那么后者绑定formObj.stu,选2,后者绑定formObj.tea
坑
那么针对这个场景我们第一个想法肯定是三目,你肯定会写出如下的代码
<el-input :v-model:'formObj.xx == 1?this.formObj.stu':'this.formObj.tea'>
</el-input>
恭喜你,这么些不生效。因为vue有自己的规则针对v-model是不允许使用表达式或者函数的
解决方案
我们使用计算属性来解决这个问题
代码如下
<el-input v-model='formCom'></el-input>
export default{
...
computed:{
formCom: {
get() {
return this.formObj.xx == 1?this.formObj.stu:this.formObj.tea
},
set(val) {
this.formObj.xx == 1?this.formObj.stu =val:this.formObj.tea =val
},
},
}
}
完美解决问题