Vuejs输入基于计算性能的数组绑定(Vuejs Input Binding Based on Ar

2019-10-29 04:20发布

我有我想要的V模型的输入域结合,通过一个计算的属性返回的值来决定的情况。

请看下面的例子:

<!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。 但是,这将在逻辑决定。

我觉得我没有利用获取和设置是否正确。 非常感谢所有帮助。

注:我有类似的路线前一个问题,但它只有一个在计算的属性,而不是一个数组/对象返回值。 提供的答案伟大的工作。然而,这一次的挑战是,我们需要设置两个值。 你可以在这里看到线程: 基于计算物业Vuejs绑定的输入

Answer 1:

您可以通过v-模型直接向物业计算,而无需使用数据或设置/获取。

CodePen

<input type="text" v-model="myName.first">

data:{},
computed: {
   myName: function() {
       return this.$store.state.myName; //or whatever your api is
   } 
}     

此外,请确保您的计算机属性的值是您输入加载之前存在。



文章来源: Vuejs Input Binding Based on Array of Computed Properties