Угловая директива не работает с ng-контейнером

#javascript #angular #angular-directive

Вопрос:

Приведенный ниже код ng-if работает не так, как ожидалось

если displayGroup значение равно D , то он напечатает первый и второй блок, я допустил какую-либо ошибку

 <div *ngIf="(bookTravelInfo.displayGroup | uppercase) === 'A' || 'B' || 'C'  ">
  <h2>Perfect!</h2>
</div>
<div *ngIf="(bookTravelInfo.displayGroup | uppercase) === 'D'  ">
  <h2>Does not Perfect</h2>
</div>
 

Ответ №1:

Если вы хотите проверить bookTravelInfo.displayGroup , является ли «А» , «В» или «С»,

Воспользуйся

 *ngIf="['A', 'B', 'C'].includes(bookTravelInfo.displayGroup | uppercase)"
 

|| Логический ИЛИ оператор из вашего *ngIf никогда не вернется false .

Как логический результат , возвращаемый true , когда значение не равно ни null , ни undefined , ни false как в соответствии с ToBoolean.

Следовательно, первый <div> элемент все еще будет отображаться с:

 *ngIf="(bookTravelInfo.displayGroup | uppercase) === 'A' || 'B' || 'C'"