Javascript 基于计算属性的Vuejs输入绑定
我有一个场景,希望输入字段的v-model绑定由计算属性返回的值决定 请参见下面的示例:Javascript 基于计算属性的Vuejs输入绑定,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我有一个场景,希望输入字段的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
<!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" class="container-fluid">
<h2>Input Binding</h2>
<p><b>First Name</b></p>
<input type="text" v-model="value.first" placeholder="Enter first name" />
<p style="margin-top:20px;"><b>Second Name</b></p>
<input type="text" :v-model="lastName" placeholder="Enter last name" />
<hr />
<p>{{value.first}} {{value.second}}</p>
<hr />
<p>Value of computed property: {{lastName}}</p>
</div>
<script>
new Vue({
el: '#app',
data: function() {
return {
value: {
first:'',
second:''}
}
},
computed: {
// a computed getter
lastName: function() {
return 'value.second'
}
}
});
</script>
</body>
</html>
JS-Bin
输入绑定
名字
第二个名称
{{value.first}{{value.second}
计算属性的值:{lastName}
新Vue({
el:“#应用程序”,
数据:函数(){
返回{
价值:{
首先:",,
第二个:'}
}
},
计算:{
//计算吸气剂
lastName:function(){
返回'value.second'
}
}
});
正如您在上面的代码中所看到的,我希望第一个字段绑定到value.first,因此我选择了v-model=“value.first”。对于第二个字段,我希望模型绑定由computed属性返回的值决定。现在这是一个简单的例子,只有一个返回值,即value.second。但这将取决于逻辑
现在,当我尝试进行绑定时,它不会返回任何内容。非常感谢您的帮助。您可以按如下方式使用:
computed: {
lastName: {
get(){
//perform your logic
return 'value.second'
},
set(newValue){
this.value.second = newValue;
}
}
}
现在在模板中将此计算属性用作v-model
<input type="text" v-model="lastName" placeholder="Enter last name" />
这是哦,我想这就是他的意思。我很难理解,这就是我想要的。我认为它在做它的工作。但是有一个小麻烦。第二个输入字段继续显示填写的“value.second”。如果我快速键入某个内容,它确实正确绑定到value.second数据属性。但随后它被value.second文本替换。我该如何纠正这个问题?@asanas你能重现一个逻辑吗?@VamsiKrishna非常感谢。它工作得很好。我外出了一段时间,因此无法复制小提琴。很抱歉,瓦姆西克里希纳,你的解决方案对我很有效。但现在我有一点更复杂,我再次陷入困境。我在类似的线上发布了一个新问题。如果你能帮忙。。。