为什么v-model不适用于数组和v-for循环?

Ang*_*loC 5 javascript vue.js

我有一个自定义的选择组件,它与一个简单的变量一起使用,但是当与v-一起使用时将不起作用:

https://jsfiddle.net/7gjkbhy3/19/

<select2 v-for="item, index in samples" v-model="item" ></select2>
data : { samples : [0, 0, 0]}
Run Code Online (Sandbox Code Playgroud)

这有效:

<select2 v-model="sample"></select2>
data : { sample : 0}  
Run Code Online (Sandbox Code Playgroud)

我在这里想念什么?

Has*_*ami 7

v-modelv-for如果不能很好地一起去v-model用于迭代别名W / A原始值。

Vue警告:

v-model直接绑定到v-for迭代别名。这将无法修改v-for源数组,因为写入别名就像修改函数局部变量一样。考虑使用对象数组,并在对象属性上使用v模型。

因此,使用对象数组(每个对象都具有选择值的属性)将解决此问题:

工作实例

<select2 v-for="item, index in samples" v-model="item.value" ></select2>
Run Code Online (Sandbox Code Playgroud)
new Vue({
     el: '#app',
     data: {
         sample: 0,
         samples : [{ value: 0 }, { value: 0 }, { value: 0 }]
     }
 })
Run Code Online (Sandbox Code Playgroud)