Utilizing @ng-bootstrap's collapse directive, it wraps multiple ngbCollapse directives to form an accordion.
There are three directives:
- NgAceAccordion: Accordion element that wraps multiple
.cardelements - NgAceAccordionToggle: The accordion toggler
- NgAceAccordionCard: The accordion content
The syntax is as follows:
html
<div NgAceAccordion>
<div class="card">
<div class="card-header" id="headingOne">
<h2 class="card-title">
<a NgAceAccordionToggle>
<i class="fa fa-angle-right toggle-icon"></i>
toggle 1
</a>
</h2>
</div>
<div NgAceAccordionCard [ngbCollapse]="false" aria-labelledby="headingOne">
<div class="card-body">
content 1
</div>
</div>
</div>
<div class="card">
<div class="card-header" id="headingTwo">
<h2 class="card-title">
<a NgAceAccordionToggle class="collapsed">
<i class="fa fa-angle-right toggle-icon"></i>
toggle 2
</a>
</h2>
</div>
<div NgAceAccordionCard [ngbCollapse]="true" aria-labelledby="headingTwo">
<div class="card-body">
content 2
</div>
</div>
</div>
</div>
The current/last open card.
Default true. If true, only one accordion card can be open at a moment.
Emitted when a new card is opened.
html
<div NgAceAccordion #accordion="NgAceAccordion" [activeId]="myActiveId">
...
</div>
<button (click)="myActiveId = 3">Open Card 3</button>
ts
myActiveId: any;
@ViewChild ('accordion') accordion: NgAceAccordion;
someMethod() {
this.accordion.activeIdChange.subscribe((activeId: any) => {
//
})
}
You can use this option to specify a custom ID for a panel/card. Otherwise it will be assigned automatically.
html
<a [NgAceAccordionToggle]="'chart-panel'" class="collapsed">
<i class="fa fa-angle-right toggle-icon"></i>
toggle 2
</a>