答案 0 :(得分:2)
这是一个简单的,朴素的硬编码版本:
<mat-tab-group [selectedIndex]="1">
<mat-tab label="system" routerLink="syspref"> Default Preferences </mat-tab>
<mat-tab label="user" routerLink="userpref"> User Preferences </mat-tab>
</mat-tab-group>
要使其更通用,您将需要采用某种编程方式来了解您拥有多少个选项卡。例如,如果要从数组构建选项卡。
<mat-tab-group [selectedIndex]="tabs.length - 1">
<mat-tab *ngFor="let tab of tabs" [label]="tab.label" [routerLink]="tab.link">{{tab.name}}</mat-tab>
</mat-tab-group>
选项卡是带有适当属性名称的对象数组。
编辑:
您要在页面重新加载期间保留活动标签。
我遵循的一般模式是:
组件
constructor(private route: ActivatedRoute,
private router: Router) {}
selectedTabIndex: number;
ngOnInit(): void {
this.selectedTabIndex = parseInt(this.route.snapshot.queryParamMap.get('tab'), 10);
// TODO: check upper bound. Material will set the last tab as selected
// if selectedTabIndex >= number of tabs
if (isNaN(this.selectedTabIndex) || this.selectedTabIndex < 0) {
this.selectedTabIndex = 0;
}
}
onTabChange(selectedTabIndex: number): void {
this.router.navigate([], { relativeTo: this.route, queryParams: {
tab: selectedTabIndex
}});
this.selectedTabIndex = selectedTabIndex;
}
html
<mat-tab-group [selectedIndex]="selectedTabIndex"
(selectedIndexChange)="onTabChange($event)">
<mat-tab label="system" routerLink="syspref"> Default Preferences </mat-tab>
<mat-tab label="user" routerLink="userpref"> User Preferences </mat-tab>
</mat-tab-group>
答案 1 :(得分:0)
我建议将最后一个tabIndex存储在localStorage中。
更新tabIndex以引用localStorage中最后保存的索引。 因此,当页面刷新或返回时,它将显示最后显示的标签。