javascript - 基于计算属性数组的 Vuejs 输入绑定(bind)

标签 javascript vue.js vuejs2

我有一个场景,我希望输入字段的 v-model 绑定(bind)由计算属性返回的值决定。

请参阅下面的示例:

<!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>

正如您在上面的代码中看到的,我希望第一个字段绑定(bind)到 value.first,第二个值绑定(bind)到 value.second。对于这两个字段,我希望模型绑定(bind)由计算属性返回的值决定。现在这是一个简单的例子,只有两个返回值,即 value.first 和 value.second。但这将由逻辑决定。

我觉得我没有正确使用 get 和 set 。非常感谢任何帮助。

注意:我之前有一个关于类似问题的问题,但它在计算属性中仅返回一个值,而不是数组/对象。提供的答案效果很好但是,这一次的挑战是我们需要设置两个值。您可以在这里看到该线程:Vuejs Input Binding Based on Computed Property

最佳答案

您可以直接对计算属性进行 v-model,而无需使用数据或 set/get。

CodePen

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

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

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

关于javascript - 基于计算属性数组的 Vuejs 输入绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47805993/

相关文章:

关于排序功能的 Javascript 语法帮助

javascript - JQuery清除hoverIntent

vue.js - 将参数传递给vue路由器中的元标题

vue.js - 在 Vue.js 的下拉列表中填充嵌套数组

javascript - 如果用户已登录,则更改路由名称和组件

javascript - 搜索并替换 "-p"

javascript - 如何通过 JQuery 将值替换为 img 标签

javascript - Vue 2 : How to render Single File Components from Render Functions?

php - Vue 组件未显示(Laravel 5.3)

vue.js - 如何扩展从 npm 包导入的 vue 组件?