routeParams更改后如何更改mat-tab?

时间:2019-04-16 19:22:40

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

我正在尝试重置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)。 但是第一个选项卡不会激活-即使我在路由参数的订阅中设置了索引。

1 个答案:

答案 0 :(得分:0)

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

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

我设置了<mat-tab-group [(selectedIndex)]="index">而不是<mat-tab-group [selectedIndex]="index">,它起作用了。

因此,当我通过routerLink从一张卡的第二个标签转到另一张卡时,新卡的第一个标签变为活动状态。