Как закрыть все меню внутри Accordion в Angular 4

Я новичок в angular 4, здесь у меня есть аккордеон в структуре категории, группы и подгруппы.

Если я щелкну по категории, отобразятся все группы в ней, а если я щелкну по группам, отобразятся все подгруппы.

Теперь все работает нормально.

Что я хочу сделать, так это то, что если я снова нажму на категорию, я захочу закрыть аккордеон со всеми группами, которые были открыты ранее.

В моем случае, если я открыл несколько групп и закрыл аккордеон, то если я открыл снова, он покажет открытые группы, которые я открывал раньше.

Я воспроизвел свой код в stackblitz: https://stackblitz.com/edit/angular-bootstrap-carousel-dynamic2-ghebrf?file=app/app.component.html

может кто-нибудь помочь мне исправить это.

поэтому, когда вы снова нажимаете на самый высокий уровень, вам нужно, чтобы он закрылся, и все группы подкатегорий также закрылись, верно?

RamY 11.07.2018 11:55

да именно @RamY

Zhu 11.07.2018 11:56

можно ли сделать @RamY

Zhu 11.07.2018 12:02

Broooooooooooooooooooooo @RamY

Zhu 11.07.2018 12:39

это определенно возможно, хотя подход, который вы использовали для переключения элементов, является для меня новым, обычно я использую переменные компонентов для переключения аккордеона. Я пытаюсь заставить его работать, используя что-то вроде это.

RamY 11.07.2018 12:50

Так что я не могу получить это с помощью моего кода а ...? @RamY

Zhu 11.07.2018 13:04

Я буду применять логику в моем реальном проекте и сообщу вам подробности, но, принимая ответ сейчас, потому что я вижу результат: то, что я хочу сделать, @RamY

Zhu 11.07.2018 13:12
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
1
7
111
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не верю, что можно достичь того, что вы ищете, просто используя href и ids, потому что href принимает только один аргумент. Проверьте здесь.

Я добавил привязки событий, чтобы проверить, когда родительский аккордеон переключается, чтобы закрыть все дочерние аккордеоны.

Здесь добавлено событие щелчка:

    <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

здорово, рад, что смог помочь, пожалуйста, проголосуйте за ответ, если он был полезен.

RamY 11.07.2018 13:32

Другие вопросы по теме