【问题标题】:How to change mat-tab after routeParams changed?routeParams 更改后如何更改 mat-tab?
【发布时间】:2025-12-13 23:50:02
【问题描述】:

我正在尝试重置 mat-tab-group 以在 routeParams 更改时将第一个选项卡设置为活动状态。

ts 文件

public index = 0;

ngOnInit() {
  this.subscription = this.route.params.subscribe((routeParams: Params) => {
    // some code

    this.index = 0;
  });
}

html 文件

<mat-tab-group [selectedIndex]="index">
  <mat-tab></mat-tab>
  <mat-tab>
    <a [routerLink]="['/url/2']"></a>
  </mat-tab>

在第二个选项卡中,我有一个指向另一张卡的路由器链接 - 因此,当路由器导航到此卡组件时,不会重新加载(路由是 /url/:id)。 但是第一个选项卡没有变为活动状态 - 即使我在路由参数的订阅中设置了索引。

【问题讨论】:

标签: angular angular-material angular-routing mat-tab


【解决方案1】:

我做到了。 原因是 selectedIndex 的两种方式绑定。

https://github.com/angular/material2/issues/10282

我设置了&lt;mat-tab-group [(selectedIndex)]="index"&gt; 而不是&lt;mat-tab-group [selectedIndex]="index"&gt;,它可以工作。

所以,当我通过 routerLink 从一张卡的第二个选项卡转到另一张卡时,新卡的第一个选项卡将变为活动状态。

【讨论】: