Отключить выбранную вкладку при нажатии кнопки Mat-Tab - PullRequest
1 голос
/ 14 октября 2019

Я хотел отключить выбранные 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,

Но он отключил все вкладки вместо выбранной и не отключил элементы управления.

Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 14 октября 2019

this.tabGroup._tabs - это список элементов, который вы должны преобразовать в массив или получить доступ к свойству _results внутри списка запросов

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

или

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

Пример

0 голосов
/ 14 октября 2019

Вы можете использовать свойство по умолчанию 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

...