Могу ли я вызвать функцию только при открытом гармошке? - PullRequest
0 голосов
/ 20 сентября 2019

Я использую Clarity v2, и я хочу вызывать функцию только при открытии аккордеона, а не по щелчку.

В настоящее время использую что-то вроде этого:

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

Но myFunction () вызывается при открытии и закрытии, очевидно.Есть предложения?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2019

Вы можете связать с синтаксисом без сахара: clrAccordionPanelOpen Например:

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

Вот простой рабочий стек, который я собрал, чтобы продемонстрировать это: https://stackblitz.com/edit/so-58029735-accordion-open-function

0 голосов
/ 20 сентября 2019

Вы можете связать переменную в вашем компоненте с директивой [(clrIfExpanded)] Аккордеона.

Так что может быть что-то вроде:

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

Тогда вы можете проверить значение isOpen в myFunction ()

См .: https://clarity.design/documentation/accordion

...