我有一个v-for
循环遍历一个称为projects
的数组。我还有另一个名为selectedProjects
的数组。单击project
元素时,我想向该特定元素添加一个名为selected
的类,并将该索引的project.id
属性添加到selectedProjects
。也许我将整个问题都弄错了,有没有“可行的”方法来实现这一目标?
<!-- The template -->
<div v-for="project in projects" class="project" @click="">
<p><i class="fa fa-folder"></i>{{project.name}}</p>
</div>
组件的数据:
data: function(){
return {
projects: [...],
selectedProjects: [],
}
},
最佳答案
我将在项目对象上添加键selected
。
模板将像这样
<div v-for="project in projects" class="project" :class="{selected: project.selected}" @click="select(project)">
<p><i class="fa fa-folder"></i>{{project.name}}</p>
</div>
并添加
select
事件。如果出于某种原因需要selectedProjects
数组,则可以具有一个计算函数,而不要在数据中具有两个数组。methods: {
select(project) {
project.selected = true
}
},
computed: {
selectedProjects () {
return this.projects.filter(project => project.selected)
}
}