我创建了一个小提琴来解释我想要什么:https ://jsfiddle.net/silentway/aro5kq7u/3/
独立代码如下:
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<div id="mainApp" class="container-fluid">
<p>This is my main list.</p>
<div class="main-list" v-for="(q, index) in questions">
<input type="checkbox"
v-bind:id="'question-' + index"
v-bind:value="{id: index, property: false}"
v-model="answers">
<label v-bind:for="q">{{q}}</label>
</div>
<p>And this is the list of the selected elements in the previous list.</p>
<ul class="selected-list" v-for="(a, index) in answers" :key="a.id">
<li>{{questions[a.id]}} <input type="checkbox"
v-bind:id="'answer-' + index"
v-bind:value="true"
v-model="a.property">
</li>
</ul>
<p>Here's the answer's array for debugging: {{answers}}</p>
</div>
<script>
var mainApp = new Vue({
el: '#mainApp',
data: {
questions: [
"Who are you ?",
"Who, who?",
"You know my name?",
"Look up my number"
],
answers: []
}
});
</script>
我想显示第一个问题列表,每个问题都有一个复选框。选定的问题存储在称为“答案”的数组中。然后我从这些选定的答案中列出另一个列表。每个项目都有一个新的对应复选框,用于某个属性(可以是真或假)。我希望将此关联属性存储在与第一个列表中的输入结果相同的数组(“答案”)中。
我的代码发生的情况是,选中第二个列表中的框确实会更改共享的数据数组(“答案”),但这样做也会取消选中第一个列表中的相应答案。
任何帮助将非常感激。