仅在打开扩展面板时如何在Angular中触发事件

时间:2019-05-17 03:41:07

标签: angular rxjs

我正在尝试通过更改触发网络请求的事件来减少发送的网络请求的数量。我只希望 fetchAvailableCompanies http请求在扩展面板打开时触发,而不在关闭面板时触发。

这是我的HTML组件:

 <mat-accordion *ngIf="modules">
    <mat-expansion-panel *ngFor="let module of modules">
      <mat-expansion-panel-header (click)="fetchAvailableCompanies(module.module_name)">
        <mat-panel-title>
          {{module.module_name}}
        </mat-panel-title>
      </mat-expansion-panel-header>
      <div *ngFor="let company of availableCompanies[module.module_name]">
        <mat-checkbox>{{company.name}}</mat-checkbox>
      </div>
    </mat-expansion-panel>
  </mat-accordion>

也许不用点击就可以打开/展开和关闭/折叠?虽然不确定如何实现。我还计划使用Http Interceptors来实现http响应的缓存。这会影响我应如何处理当前问题?

我们将不胜感激,谢谢:)

1 个答案:

答案 0 :(得分:1)

afterExpand有一个事件mat-expansion-panel(不是标题):

<mat-expansion-panel *ngFor="let module of modules" (afterExpand)="fetchAvailableCompanies(module.module_name)">
    <mat-expansion-panel-header>