Как отключить div в ngClass с логическим значением true или false в angular - PullRequest
0 голосов
/ 23 апреля 2020
displayData = [
  {
    status: 'CLOSED', ack: false
  },
  {
    status: 'ESCALATED', ack: false
  },
  {
    status: 'ACK', ack: false
  },
  {
    status: 'ACK', ack: true
  },
  {
    status: 'NEW', ack: true
  }
]

и что я хочу сделать здесь, это когда статус «НОВЫЙ» и его подтверждение «true» не отключит div. если статус «ЗАКРЫТО», «ACK», «ESCALATED», даже если «ack» имеет значение «false», он не отключит отключенный div. даже если статус «ACK» и его подтверждение «true», он также не отключит

<div class="action-default"
[ngClass] = "!['CLOSED', 'ESCALATED', 'ACK', 'NEW'].includes(dataDisplayed?.status) ? 'disabled' : ''" >
  <i nz - icon nzType = "close-circle" nzTheme = "outline" > </i>
Cancel
  < /div>

1 Ответ

1 голос
/ 23 апреля 2020

dataDisplayed - это Array of Objects, поэтому не может получить доступ к свойству status, как dataDisplayed?.status. Вам нужно получить каждый отдельный объект, прежде чем получить доступ к свойству.

И, согласно вашему объяснению, вам нужно проверить status и ask, но здесь вы проверяете только status.

Ваш код должен быть похож на

<div 
  class="action-default"
  *ngFor="let data of dataDisplayed"
  [ngClass] = "((['CLOSED', 'ESCALATED', 'ACK'].includes(data.status) && data.ack) || (data.status === 'NEW' && !data.ack)) ? 'disabled' : ''" >
  <i nz - icon nzType = "close-circle" nzTheme = "outline" ></i>
  Cancel
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...