Javascript Vue v-model瞄准v-for循环中的其他元素--如何构造v-model阵列结构以避免这种情况
小结:我的v-model输入会影响同一数组中的其他元素,但我希望它只针对我正在修改的输入 在我的Vue数据存储中,我有一个包含2个对象(0和1)的数组userAnswers。这是在created()上构造的(在相关情况下提及) 您可以在此处看到数据结构的详细信息:Javascript Vue v-model瞄准v-for循环中的其他元素--如何构造v-model阵列结构以避免这种情况,javascript,vue.js,vuejs2,v-model,Javascript,Vue.js,Vuejs2,V Model,小结:我的v-model输入会影响同一数组中的其他元素,但我希望它只针对我正在修改的输入 在我的Vue数据存储中,我有一个包含2个对象(0和1)的数组userAnswers。这是在created()上构造的(在相关情况下提及) 您可以在此处看到数据结构的详细信息: userAnswers:Array[2] 0:Object answers:Object 1:"3" 10:"3" 13:"3&
userAnswers:Array[2]
0:Object
answers:Object
1:"3"
10:"3"
13:"3"
15:"99"
18:"3"
id:4
1:Object
answers:Object
1:"3"
10:"3"
13:"3"
15:"99"
18:"3"
id:3
在本例中,我有问题ID 1、10、13等,我使用了以下包装在v-for循环中的v模型来生成两个输入
<div v-for="(group, key) in selectedAssessment.questions" :key="key">
<div
v-for="(participant, i) in participants"
v-bind:key="participant.id"
>
<input type="text" v-model="form['userAnswers'][1]['answers'][question.id]" />
</div>
</div>
你能制作一个JSIDdle吗?非常奇怪——我在JSIDdle()中使用上面的代码,它可以完美地工作,我只是声明了数据。。。这就缩小了问题的范围。。在我的vue中,我有一个相当复杂的设置,在created()上我构建数据对象。我对上面的问题进行了编辑,以包括我的created(){}也许这就是为什么v-model不起作用的原因…更新是说在JSFIDLE中进行了更多的修改,我复制了这个问题,并将其精确定位到created()方法中--在上面更新了更多细节,这真是奇怪,起初我认为这是因为
question.id
对于两个输入都是相同的,但是,仔细看,它们是独立的对象,所以,如何将它们同时v建模到这两个对象是很奇怪的。你能制作一个JSFIDLE吗?非常奇怪——我在JSFIDLE()中使用上面的代码可以完美地工作这是我刚刚声明的数据。。。这就缩小了问题的范围。。在我的vue中,我有一个相当复杂的设置,在created()上我构建数据对象。我对上面的问题进行了编辑,以包括我的created(){}也许这就是为什么v-model不起作用的原因…更新是说在JSFIDLE中进行了更多的修改,我复制了这个问题,并将其精确定位到created()方法中--在上面更新了更多细节,这真是奇怪,起初我认为这是因为question.id
对于两个输入都是相同的,但仔细看,它们是独立的对象,因此,如何同时对它们进行v建模是很奇怪的
created() {
// Form Answers -- Add empty answers arr
this.form.userAnswers = this.form.userAnswers.map((el) => {
var o = Object.assign({}, el);
o.answers = this.questionIds;
return o;
}, this.questionIds);
}