Пример того, как имитировать выделение

#angular #typescript #angular-material

Вопрос:

У меня есть выбор коврика с набором нескольких опций (множественный выбор). Когда я выбираю один из вариантов, мне нужно отключить другие параметры. Как я могу сделать это в функции checkDeleted() или в функции refresh ()? Существует ли метод класса MatOption, который вручную переключает выбранное поле? Вот мой HTML :

 <mat-select #statusSelect [(ngModel)]="statuses" (selectionChange)="refresh()" multiple>
        <mat-option
          *ngFor="let status of statuses"
          #statusOptSelect
          [value]="status.id"
          [disabled]="!checkDeleted(statusOptSelect)"
        >
          {{ status.name }}
        </mat-option>
</mat-select>
 

И код ts:

   public checkDeleted(el: MatOption): boolean {
    if (this.filter.statuses.includes(EStatus.DELETED) amp;amp; el.value !== EStatus.DELETED) {
      return false
    }
    return true
  }
 

Комментарии:

1. [disabled]="isDeletedStatusChecked amp;amp; status.id != deletedStatus.id"

2. [(ngModel)]="statuses" => [(ngModel)]="selectedStatusIds"