Резюме: мои входные данные v-модели влияют на другие элементы в том же массиве, но я ожидаю, что они будут ориентированы только на входные данные, которые я изменяю.
В моем хранилище данных Vue у меня есть массив userAnswers из 2 объекты (0 и 1). Это построено на created created () (упоминание в случае, если это актуально).
Вы можете увидеть структуру данных здесь:
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
In В этом примере у меня есть вопросы с идентификаторами 1,10,13 и c. и я использовал следующую v-модель, обернутую в v-for l oop, чтобы получить два ввода.
<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>
Это циклически перебирает вопросы, а затем внутри этого l oop создает ввод для каждый пользователь. Когда я изменяю ввод для пользователя, он привязывается к обоим вводам в вопросе l oop, когда я ожидаю, что v-модель будет ориентирована только на указанный c идентификатор вопроса пользователя.
Есть что-то У меня отсутствует ссылка на v-model = "", которая вызывает это?
Снимок экрана включен для некоторой ясности.
ОБНОВЛЕНИЕ:
Согласно рекомендации Я создал jsfiddle и изолировал проблему. https://jsfiddle.net/raisonon/jf5t460s/44/
Я создаю объект данных в created (), и это вызывает проблему. Я не уверен, почему.
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);
}
введите описание изображения здесь