【发布时间】:2020-10-30 08:19:39
【问题描述】:
根据文档,只要我定义 get/set 方法,我应该能够在 Vue 中使用计算属性作为 v-model,但在我的情况下它不起作用:
export default{
template: `
<form class="add-upload" @submit.prevent="return false">
<label><input type="checkbox" v-model="options.test" /> test </label>
</form>
`,
computed: {
options: {
get(){
console.log('get');
return {test: false};
},
set(value){
console.log('set');
},
},
}
}
当我选中/取消选中输入时,显然不会调用 set。
但是在显示组件的时候会调用get...
【问题讨论】:
-
这里
option是被动的,而不是options.test -
这是否意味着我需要使用 get/set 为每个键定义计算属性?那将迫使我编写大量重复的代码。我这里只有
test,但我计划添加更多输入字段.. -
使用表单提交。因为该复选框将单独更新表单值
-
我不明白?
-
那么为什么要使用
v-model的计算属性呢?定义数据有什么问题?这里的问题是v-model尝试在options.test上设置值,但您的计算属性正在options上设置新值。不确定这是否会自动工作。
标签: javascript vue.js computed-properties