繁体   English   中英

如何在打字稿中从一个 Angular 2 材料选项卡切换到另一个?

[英]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>

STACKBLITZ DEMO

...或者您可以创建对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>

STACKBLITZ DEMO

您需要声明一个变量,例如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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM