如何在Angular 4中关闭手风琴内的所有菜单

Posted

技术标签:

【中文标题】如何在Angular 4中关闭手风琴内的所有菜单【英文标题】:How to close all the menus inside an Accordion in Angular 4 【发布时间】:2018-12-19 06:39:43 【问题描述】:

我是 angular 4 的新手,我在 Category、Group 和 Subgroup 的结构中有一个手风琴。

如果我点击类别,它会显示其中的所有组,如果我点击组,它会显示所有子组。

现在一切正常。

我想要做的是,如果我再次单击类别,我想关闭之前打开的所有组的手风琴。

在我的情况下,如果我打开了一些组并关闭了手风琴,那么如果我再次打开它会显示我之前打开过的组。

我已经在 stackblitz 中复制了我的代码:https://stackblitz.com/edit/angular-bootstrap-carousel-dynamic2-ghebrf?file=app/app.component.html

谁能帮我解决它。

【问题讨论】:

所以当您再次点击***别时,您需要将其关闭,并且所有子类别组也需要关闭对吗? 是的,完全是@RamY 可以做@RamY Broooooooooooooooooooooo @RamY 将在我的实际项目中应用逻辑并让你知道细节,但现在接受答案因为我可以看到我想做的结果@RamY 【参考方案1】:

我不相信仅通过使用 href 和 ids 就可以实现您正在寻找的东西,因为 href 只接受一个参数。检查here。

我添加了事件绑定来检查何时切换父手风琴以关闭所有子手风琴。

在此处添加了点击事件:

    <a class="accordion-toggle h6" data-toggle="collapse" data-parent="#accordion1" (click)="onToggle()"  href="#collapseTwo + i">
        data?.CAMD_ENTITY_DESC
    </a>

并在这里使用了 ngIf:

<div [id]="'collapseInnerTwo' + j"  *ngIf="accordion2==true" class="accordion-body collapse" style="margin-left:10px;margin-top:3px">

在此处查看完整的解决方案: https://stackblitz.com/edit/angular-bootstrap-carousel-dynamic2-fjowve?file=app/app.component.html

【讨论】:

太棒了,很高兴我能帮上忙,如果它有用请点赞。

以上是关于如何在Angular 4中关闭手风琴内的所有菜单的主要内容,如果未能解决你的问题,请参考以下文章

当离子菜单按钮在离子中关闭时如何触发功能

如何在关闭特定选项卡而不是在 Angular 2 中关闭浏览器时清除本地存储?

从 uitableviewcell 内的文本字段中关闭 iPad 上的键盘

如何检测在 $modal 中关闭模式窗口?角度-ui

在 Angular 中关闭严格模式?

ngOnChanges 在 Angular4 中不起作用