【发布时间】:2019-08-06 12:11:00
【问题描述】:
如何在 vue.js 中为列表渲染元素切换一个类?这个问题是对this 很好回答的问题的扩展。我希望能够单独切换每个元素以及将它们全部切换。我尝试过 使用以下代码的解决方案,但感觉很脆弱,似乎不起作用。
另一种解决方案是使用单个变量来切换所有元素,然后每个元素都有一个可以打开和关闭的局部变量,但不知道如何实现它..
// html element
<button v-on:click="toggleAll"></button>
<div v-for="(item, i) in dynamicItems" :key=i
v-bind:class="{ active: showItem }"
v-on:click="showItem[i] = !showItem[i]">
</div>
//in vue.js app
//dynamicItems and showItem will be populated based on API response
data: {
dynamicItems: [],
showItem: boolean[] = [],
showAll: boolean = false;
},
methods: {
toggleAll(){
this.showAll = !this.showAll;
this.showItem.forEach(item => item = this.showAll);
}
}
【问题讨论】:
-
您可以将
v-for元素包装在另一个div 中,并通过绑定类来切换所有内容,然后它将隐藏所有内容而不是将其绑定在v-for上跨度>
标签: javascript vue.js