* ngIf ... когда данные пустые, установите disabled = true для mat-checkbox - PullRequest
1 голос
/ 02 октября 2019

У меня есть следующий код:

<div class="item-container">
  <mat-checkbox class="item">{{contactInfo.privateMobile}}</mat-checkbox>
</div>

Если contactInfo.privateMobile пуст, я не хочу, чтобы пользователь мог установить флажок.

Я пробовал что-тов соответствии с: <mat-checkbox *ngIf={{contactInfo.privateMobile}} === null disabled=true" class="item">{{contactInfo.privateMobile}}</mat-checkbox>, но это не работает и не компилируется. Может быть, мне нужен метод в моем коде TypeScript вместо? Не уверен, как это сделать.

Ответы [ 3 ]

3 голосов
/ 02 октября 2019

Не обязательно использовать {{}} в *ngIf:

<div class="item-container">
  <mat-checkbox *ngIf="contactInfo.privateMobile" class="item">{{contactInfo.privateMobile}}</mat-checkbox>
</div>

Если вы хотите просто отключить его, вы можете сделать что-то вроде:

<div class="item-container">
  <mat-checkbox [disabled]="!contactInfo.privateMobile" class="item">{{contactInfo.privateMobile || '(private mobile unavailable)'}}</mat-checkbox>
</div>

Демо: https://stackblitz.com/edit/angular-h1sfoy?file=app%2Fcheckbox-overview-example.html

1 голос
/ 02 октября 2019
Директива

ngIf удалит элемент из DOM. Использовать троичный оператор в отключенном свойстве

<mat-checkbox [disabled]=" contactInfo?.privateMobile === null ? true : false">Check me!</mat-checkbox>

Пример

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

Вы можете связать атрибут следующим образом:

[disabled]="contactInfo.privateMobile === null"

, если это не сработает, это должно:

[attr.disabled]="contactInfo.privateMobile === null ? 'disabled' : null"
...