所以我可能错过了文档中明显的一些东西,但我只是在寻找一种简单的方法来查找在以下场景中选择了哪个选项卡:
看法
<mat-tab-group (selectedTabChange)="onTabChange($event)">
<mat-tab *ngIf="true" label="Label1">Content 1</mat-tab>
<mat-tab *ngIf="false" label="Label2">Content 2</mat-tab>
<mat-tab *ngIf="true" label="Label3">Content 3</mat-tab>
</mat-tab-group>
显然,在我的实际代码中条件是动态的。这仅用于示例。
脚本
onTabChange(event: MatTabChangeEvent) {
// ?
}
问题
在上面的脚本中,event.index
如果单击第一个选项卡将返回 0,如果单击第三个选项卡将返回 1,因为第二个选项卡由于*ngIf
.
这对我来说确实有意义,但是根据开始显示的选项卡,很难知道实际单击了哪个选项卡。
我可以:
- 再次测试其中的每个选项卡条件
onTabChange
以找出哪个索引对应于哪个选项卡, - (可能)绑定
ViewChild(ren)
对某物的引用并通过其原生 DOM 元素检索数据(例如data-
属性)。
不过,这两个选项似乎都超级矫枉过正。
问题
Label3
在上面的代码中,如果不测试标签本身(这显然是可怕的),那么知道点击标签的选项卡的适当方法是什么?
简单的 Stackblitz如果有帮助的话。