【发布时间】:2018-05-28 02:36:12
【问题描述】:
我有一个场景,我希望输入字段的 v-model 绑定由计算属性返回的值决定。
请看下面的例子:
<!DOCTYPE html>
<html>
<head>
<script src="https://unpkg.com/vue@2.1.10/dist/vue.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<div id="app">
{{value}}
<input type="text" v-model="myName.first">
<input type="text" v-model="myName.second">
</div>
<script>
new Vue({
el:'#app',
data:{
value:{
first: '',
second: ''
}
},
computed: {
myName: {
get(){
return {first:'this.value.first',second:'this.value.second'}; //this will actually come from an API
},
set(newValue){
this.value.first = newValue.second;
this.value.second = newValue.second;
}
}
}
});
</script>
</body>
</html>
正如您在上面的代码中看到的,我希望第一个字段绑定到 value.first,第二个值绑定到 value.second。对于这两个字段,我希望模型绑定由计算属性返回的值决定。现在这是一个简单的例子,只有两个返回值,即 value.first 和 value.second。但这将取决于逻辑。
我觉得我没有正确使用 get 和 set。非常感谢任何帮助。
注意:我在类似的行中有一个先前的问题,但它在计算属性中只返回一个值,而不是数组/对象。提供的答案效果很好但是,这次的挑战是我们需要设置两个值。你可以在这里看到那个帖子:Vuejs Input Binding Based on Computed Property
【问题讨论】:
标签: javascript vue.js vuejs2