#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'"