我只能在手风琴打开时调用函数吗?

Can I call a function on accordion open only?

我使用的是 Clarity v2,我只想在手风琴打开时调用函数,而不是在单击时调用。

目前正在使用这样的东西:

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

但是 myFunction() 显然在打开和关闭时被调用。 有什么建议吗?

谢谢。

您可以将组件中的变量绑定到 Accordion 的 [(clrIfExpanded)] 指令。

所以可能是这样的:

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

然后你可以检查 myFunction() 中 isOpen 的值

参见:https://clarity.design/documentation/accordion

您可以使用 clrAccordionPanelOpen 的脱糖语法,例如:

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

这是我拼凑起来的一个简单的工作 stackblitz 来证明这一点: https://stackblitz.com/edit/so-58029735-accordion-open-function