在 md-dialog 中选择活动的 md-tab md-tab-group

4

我需要打开一个包含两个选项卡的md-tab-group的md-dialog。可以从两个按钮打开md-dialog,这些按钮应该打开相应的选项卡。 打开md-dialog的模板:

<button md-button class="" (click)="openDialog(1)">open tab 1</button>
<button md-button class="" (click)="openDialog(2)">open tab 2</button>

组件.ts文件:
    openDialog(type) {

      var data: any = {};
      data.type = type;

      let dialogRef = this.dialog.open(TwoTabDialog, {height: 'auto', width: '529px', data: data});
      dialogRef.afterClosed().subscribe(result => {});    
   }

对话框模板:

<md-tab-group  class="follow-dialog">
<md-tab  label="tab 1" id="followers-tab" md-active="data.type == 1">                            
    tab 1 content
</md-tab>
<md-tab  label="tab 2" id="following-tab" md-active="data.type == 2">                            
    tab 2 content
</md-tab>

问题在于标签页1始终处于打开状态。
2个回答

4
你需要使用<md-tab-group>[selectedIndex]属性。假设data.type代表一个tabIndex,可以按照以下方式进行操作:
<md-tab-group class="follow-dialog" [selectedIndex]="data?.type-1">
    <md-tab label="tab 1" id="followers-tab">
        tab 1 content
    </md-tab>
    <md-tab label="tab 2" id="following-tab">
        tab 2 content
    </md-tab>
</md-tab-group>

删除md-active表达式,您不需要它。请记住,选项卡的索引从0开始,这就是为什么在这个表达式中减去1:[selectedIndex]="data?.type-1"

链接到Plunker演示


0

试试这个:

openDialog(tab: number) {
    let dialogRef = this.dialog.open(TwoTabDialog);
    this.dialogRef.componentInstance.activeTab = tab - 1;
    dialogRef.afterClosed().subscribe(result => {});    
}

<md-tab-group  [selectedIndex]="activeTab">
    <md-tab  label="tab 1" id="followers-tab">                            
        tab 1 content
    </md-tab>
    <md-tab  label="tab 2" id="following-tab">                            
        tab 2 content
    </md-tab>
</md-tab-group>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接