【问题标题】:Vue.js: two-way data binding using object with v-forVue.js:使用带有 v-for 的对象的双向数据绑定
【发布时间】:2017-07-03 23:38:58
【问题描述】:

我在将输入数据绑定到对象属性时遇到问题。我正在遍历一个对象以从其属性生成输入字段,但数据绑定无法使用 v-model 工作。这是我的代码(控制台日志为空):

<div id="app">
<div v-for='value, key in fields'>
    {{ key }}: <input v-model='value'>
</div>
<button @click="add">Add</button>
</div>

<script>

new Vue({
el: '#app',
data: {
    fields: {
        id: 123,
        name: 'abc'
    }
},
methods: {
    add: function(){
          console.log('id: ' + this.fields.id)
          console.log('name: ' + this.fields.name)
    }
}
})

</script>

【问题讨论】:

    标签: javascript vue.js v-for


    【解决方案1】:

    您必须将fields[key] 与v-model 一起使用,因为value 在那里不起作用,它是v-for 的局部变量。

    <div id="app">
      <div v-for='(value, key) in fields'>
        {{ key }}: <input v-model="fields[key]">
      </div>
      <button @click="add">Add</button>
    </div>
    

    查看工作演示here

    【讨论】:

    • 很遗憾,这很微妙,但却是一个非常清晰简洁的解释! Vue 的文档应该在警告部分有这个(这个细节很难通过谷歌和 SO 找到)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 2020-12-27
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多