element中有多个el-collapse ,数据更新全部关闭
时间: 2023-12-21 08:06:14 浏览: 133
Element Collapse 折叠面板的使用方法
5星 · 资源好评率100%
如果你想要在数据更新时关闭所有的 el-collapse,可以使用 v-for 循环遍历 el-collapse 的数组,在数据更新时将所有的 el-collapse 的 collapse 属性设置为 true,即可实现全部关闭的效果。
示例代码如下:
```html
<template>
<div>
<el-button type="primary" @click="toggleAll()">全部展开/关闭</el-button>
<el-collapse v-model="collapseList">
<el-collapse-item v-for="(item, index) in list" :key="index">
<template slot="title">{{ item.title }}</template>
<p>{{ item.content }}</p>
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
export default {
data() {
return {
list: [
{ title: "标题1", content: "内容1" },
{ title: "标题2", content: "内容2" },
{ title: "标题3", content: "内容3" }
],
collapseList: []
};
},
mounted() {
// 初始化时将所有的 el-collapse 关闭
this.collapseList = new Array(this.list.length).fill(true);
},
methods: {
toggleAll() {
// 切换全部展开/关闭状态
const isCollapse = this.collapseList.every(collapse => collapse);
this.collapseList.fill(!isCollapse);
}
},
watch: {
// 数据更新时将所有的 el-collapse 关闭
list() {
this.collapseList.fill(true);
}
}
};
</script>
```
在上面的示例代码中,我们使用了一个 collapseList 数组来绑定 el-collapse 的 v-model,用于控制每个 el-collapse 的展开/关闭状态。在 mounted 钩子函数中,我们初始化了 collapseList 数组,将所有的 el-collapse 设置为关闭状态。在 toggleAll 方法中,我们使用了数组的 fill 方法来切换全部展开/关闭状态。在 watch 中,我们监听了 list 数据的变化,当数据更新时将所有的 el-collapse 设置为关闭状态。这样,每次数据更新时,所有的 el-collapse 都会关闭。
阅读全文