1

我想在mat-tab单击按钮时禁用选定的元素和内部元素,

//HTML

 <mat-tab-group #tabGroup>
      <mat-tab *ngFor="let subject of subjects" [label]="subject.name">
        {{ subject.name }}
            <mat-selection-list>
              <mat-list-option *ngFor="let ans of datas">
                 {{ans}}
              </mat-list-option>
            </mat-selection-list>
      </mat-tab>
    </mat-tab-group>

    <button (click)="buttonClick()"></button>

//打字稿

@ViewChild('tabGroup',{static:false}) tabGroup: MatTabGroup;

buttonClick(){
this.tabGroup._tabs[this.tabGroup.selectedIndex].disabled = true;
}

尝试使用[disabled]in 中的属性,

但它禁用了所有选项卡而不是选定的一个,并且没有禁用控件。

我怎样才能做到这一点?

4

2 回答 2

2

this.tabGroup._tabs 是项目列表,您应该将列表转换为数组,或者您应该访问查询列表中的 _results 属性

this.tabGroup._tabs.toArray()[0].disabled = true;

或者

this.tabGroup._tab['_results'][0].disabled = true;

例子

于 2019-10-14T17:46:02.303 回答
0

您可以使用的默认属性mat-tab isActive

<mat-tab-group>
  <mat-tab #tab [disabled]='!tab.isActive' *ngFor="let mytab of tabs" [label]="mytab.name">
    {{ mytab.name }}
  </mat-tab>
</mat-tab-group>

参考:https ://material.angular.io/components/tabs/api

于 2019-10-14T17:43:58.743 回答