Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于计算属性的Vuejs输入绑定_Javascript_Vue.js_Vuejs2 - Fatal编程技术网

Javascript 基于计算属性的Vuejs输入绑定

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

我有一个场景,希望输入字段的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" 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非常感谢。它工作得很好。我外出了一段时间,因此无法复制小提琴。很抱歉,瓦姆西克里希纳,你的解决方案对我很有效。但现在我有一点更复杂,我再次陷入困境。我在类似的线上发布了一个新问题。如果你能帮忙。。。