Search code examples
angularvmware-clarity

Can I call a function on accordion open only?


Im using Clarity v2 and I want to call a function on accordion open only and not on click.

Currently using something like this:

<clr-accordion>
    <clr-accordion-panel *ngFor="let tec of tecnic">
        <clr-accordion-title (click)="myFunction(tec)">{{tec.id}}</clr-accordion-title>

But myFunction() is getting called on open and close obviously. Any suggestions?

Thanks.


Solution

  • You could tie into the de-sugared syntax of clrAccordionPanelOpene.g:

    <clr-accordion-panel *ngFor="let panel of panels" [clrAccordionPanelOpen]="panel.open" (clrAccordionPanelOpenChange)="panelChange($event, panel)">
    

    Here is a simple working stackblitz I threw together to demonstrate this: https://stackblitz.com/edit/so-58029735-accordion-open-function