typescript - 如何使用 Typescript 获取选定/活动的垫子扩展面板名称
问题描述
我使用了垫扩展面板。动态绑定面板标题名称。当用户单击 mat-list 项时,我必须获取相应的面板名称,并且我需要在其他一些 div 中显示名称。帮助我在 typescript 中获取活动/选定的 mat-expansion-panel 名称。
<mat-accordion>
<mat-expansion-panel *ngFor="let templateList of LeftpaneTableDetails first as isFirst" [expanded]="isFirst">
<mat-expansion-panel-header>
<mat-panel-title>
{{templateList.strTemplateName}}
</mat-panel-title>
<mat-panel-description>
</mat-panel-description>
</mat-expansion-panel-header>
<mat-list>
<mat-list-item class="cursor-pointer table-name-list" *ngFor="let table of templateList.tableList" [attr.data-message-tableId]="table.intTableId" (click)="populateTableDetails($event, table.intTableId, table.strTableLabelName, templateList.strTemplateName)">{{table.strTableLabelName}}</mat-list-item>
</mat-list>
</mat-expansion-panel>
</mat-accordion>
解决方案
在您的 component.ts 中,添加@ViewChild
以获取对MatAccordion
指令的引用。然后检索展开MatExpansionPanelHeader
,如下所示。
@ViewChild(MatAccordion) accordion: MatAccordion;
...
getExpandedPanelHeader(): MatExpansionPanelHeader {
return this.accordion._headers.find(h => h._isExpanded());
}
更新
如果唯一的目的是在mat-expansion-panel
a中显示展开的名称(标题),则div
可以使用afterExpand
事件处理程序。每次mat-expansion-panel
扩展 a 时,您都将其标题存储在组件类中(即在 中selectedTitle
),并且可以在您的div
.
请参阅以下StackBlitz
推荐阅读
- php - 在 PHP 中的 json 中的数组中推送一个值
- sql - Oracle SQL BETWEEN 不返回最后一个值
- c++ - 快速且无休止地平滑数据
- flutter - 在flutter中将内存图像(如Uint8list)保存为图像文件
- firebase - 如何从一处更新多个移动应用程序?
- javascript - 如何从具有多个兄弟姐妹的div中删除文本
- finder - 如何解决 Mac Big Sur 中的查找器问题?
- html - 我无法使用来自 Material CSS 的 HTML 插入选择
- javascript - leetcode 14. 最长公共前缀 Javascript
- javascript - HTML 中的 Visual Studio 代码“转到定义”不起作用