Вы ищете if/else
блок, а затем еще один if/else
, который является вложенным. Нет возможности сложить их, как в javascript, если только у вас нет значения atomi c, в этом случае вы можете использовать ngSwitch
, что похоже на оператор switch / case.
<ng-container *ngIf="CONDITION1; else resultNA;">
<p>Condition 1 is true</p>
</ng-container>
<ng-template #resultNA>
<ng-container *ngIf="CONDITION 2; else otherBlock;">
<p>Condition 2 is true</p>
</ng-container>
<ng-template #otherBlock>
<p>No conditions are true</p>
</ng-template>
</ng-template>
Edit
"Я не могу использовать ngswitch, потому что мои условия на самом деле очень сложные." ...
В этом случае я бы порекомендовал вам воспользоваться тем, что вы иметь код компонента (машинопись). Напишите свою логику c и затем используйте ее в шаблоне HTML, это сделает ваш код более удобным и легким для чтения.
Пример имейте в виду, что вам не нужно этого делать в OnInit это может быть метод, который также вызывается или что-то еще, что изменяется при изменении значения).
component.ts
displayValue: number;
ngOnInit() {
displayValue = /*your logic here that dictates what it should be*/.
}
. html
<container-element [ngSwitch]="displayValue">
<some-element *ngSwitchCase="1">...</some-element>
<some-element *ngSwitchCase="2">...</some-element>
<some-element *ngSwitchCase="3">...</some-element>
<some-element *ngSwitchDefault>...</some-element>
</container-element>
См. Также https://angular.io/api/common/NgIf и https://angular.io/api/common/NgSwitch