VueJS:在循环内部设置动态v模型

时间:2019-03-28 13:19:20

标签: vue.js vuejs2

我想做的是在循环中设置v-model。我已经尝试了一些方法,但从未成功。

我当前的代码是这样的。

ChildComponent.vue

<div v-for="(child, index) in numberOfChildren">
    <input v-model="" />
    ...
<div>

 ...
 props: ["parent"],
 data() {
    return {}
 },
 methods: {

 },

我想根据其在for循环中的索引来设置v-model,例如parent.child1parent.child2parent.child3...。

我该如何实现?

在父组件中,

<div v-for="(parent, index) in parents">
    <ChildComponent>
</div>


data() {
    return {
        parents: [
                {
                 child_1: '',
                 child_2: '',
                 ...
                },
                {
                 child_1: '',
                 ...
                 }
            ]
        }
    }

1 个答案:

答案 0 :(得分:0)

您可以利用计算所得的属性来获取“父” prop的当前索引值,并将该值设置为v模型输入值。请看下面:

模板:

<div>
    <input v-model="returnItem" />
    ...
    <button @click="changeIndex();"></button>
</div>
 ...

脚本:

props: ["parent"],
data() {
     return {
       index : 0
    }
},
computed: {
     returnItem: {
        get () {
           let item = this.parent[this.index];
           return item;
    },
        set (theItem) {
           this.item = theItem;
    }
},
methods: {
       changeIndex: function () {
          some logic to toggle this.index
       }
    },
mounted () {
   this.index = whatever value you want to start with on load (i.e., 5);
}