![](/img/trans.png)
[英]12 Angular Material Mat tabs in 2 rows how can I achieve it?
[英]How can I switch from one Angular 2 material tabs to another in typescript?
我有两个标签和两个按钮
<md-tab-group>
<md-tab label="Tab 1">Content 1</md-tab>
<md-tab label="Tab 2">Content 2</md-tab>
</md-tab-group>
<button md-button (click)="showTab1()">Show Tab 1</button>
<button md-button (click)="showTab2()">Show Tab 2</button>
如果我在选项卡 1 上,我需要函数 showTab1() 切换到选项卡 1,如果单击按钮,则需要执行 showTab2()。 任何人都可以帮忙吗?
您可以将[selectedIndex]
@Input用于mat-tab-group
:
零件:
selectedIndex = 0;
selectTab(index: number): void {
this.selectedIndex = index;
}
模板:
<mat-tab-group [selectedIndex]="selectedIndex">
<mat-tab label="Tab 1">Content 1</mat-tab>
<mat-tab label="Tab 2">Content 2</mat-tab>
</mat-tab-group>
<button mat-button (click)="selectTab(0)">Show Tab 1</button>
<button mat-button (click)="selectTab(1)">Show Tab 2</button>
...或者您可以创建对mat-tab-group
的引用并直接在模板中操作它:
<mat-tab-group #tabGroup>
<mat-tab label="Tab 1">Content 1</mat-tab>
<mat-tab label="Tab 2">Content 2</mat-tab>
</mat-tab-group>
<button mat-button (click)="tabGroup.selectedIndex = 0">Show Tab 1</button>
<button mat-button (click)="tabGroup.selectedIndex = 1">Show Tab 2</button>
您需要声明一个变量,例如tab: number = 1
。 然后,您可以创建模板,如:
<md-tab-group>
<md-tab *ngIf="tab==1" label="Tab 1">Content 1</md-tab>
<md-tab *ngIf="tab==2" label="Tab 2">Content 2</md-tab>
</md-tab-group>
<button md-button (click)="tab=1">Show Tab 1</button>
<button md-button (click)="tab=2">Show Tab 2</button>
在 TS
@ViewChild('tabGroup') tabGroup;
ngAfterViewInit(): void {
this.selected_tab_label = this.tabGroup._allTabs._results[this.selectedIndex].textLabel;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.