angular - 仅在打开扩展面板时如何在 Angular 中触发事件
问题描述
我试图通过更改触发它们的事件来减少发送的网络请求的数量。我只希望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 拦截器实现对 http 响应的缓存。这会影响我应该如何处理当前的问题吗?
任何帮助将不胜感激,谢谢:)
解决方案
有一个事件afterExpand
(mat-expansion-panel
不是标题):
<mat-expansion-panel *ngFor="let module of modules" (afterExpand)="fetchAvailableCompanies(module.module_name)">
<mat-expansion-panel-header>
推荐阅读
- javascript - Html img loader gif 在请求 AJAX 期间调用了两次
- python - 如果在 python 中没有争论我的函数被调用,如何得到 none?
- python - 在不更改数据顺序的情况下更改 pandas/matplotlib 线图的顺序
- shell - sed -i '' -e '/javaagent.jar/ s/$/ proxyPort=8080/' 此命令应仅在未注释该行时附加字符串
- typescript - 使用泛型基于输入的窄返回类型
- huawei-mobile-services - Ads kit 集成在 HMS Ads kit 中遇到 error 499 错误
- ios - Swift 包中的 XIB 文件 - 忽略约束
- c++ - C++ 使用 std::fill 删除分配运算符的类
- php - Laravel 在 90 天后更改日期上的状态
- google-apps-script - 在谷歌表格中使用过滤器/查询时自动 S# 列