首页 > 解决方案 > v-for 中的 Vuejs 数组输入

问题描述

我有一个关于人员信息的简单表格。我有一个人数,例如 3。我需要像这样发送 json:

{
  persons[0].surname: '',
  persons[0].name: '',
  persons[0].something'',
  persons[1].surname: '',
  persons[1].name: '',
  persons[1].something'',
  persons[2].surname: '',
  persons[2].name: '',
  persons[2].something'',
}

我已经像这样设置了我的表格

 <template v-for="(person, person_index) in people">
<input type="text" placeholder="surname">
<input type="text" placeholder="name">
<input type="text" placeholder="something">
</template>

和我的数据:

data() {
    return {
        persons: [],
        people: 3
},

methods: { 
    save(){
        console.log(this.persons);
    } 
}

标签: vue.jsv-forv-model

解决方案


如果我正确理解了您的要求,那么是一种persons使用输入元素的值更新对象的方法。

Vue此使用Vue.set(object, key, value) 方法完成。在代码中:

methods: { 
    save: function (){
        this.$set(this.persons, index, value); //for Vue 2.x
        console.log(this.persons);
    } 
}

或者

methods: { 
    save: function (){
        Vue.set(this.persons, index, value) //for Vue 1.x
        console.log(this.persons);
    } 
}

其中 index 和 value 对应于您的input元素。只需确保在您的输入元素中也添加这些属性。


推荐阅读