Można spróbować użyć dyrektywy ngIf
jak:
<ng-template [ngIf]="xyz == 1" [ngIfElse]="second">First</ng-template>
<ng-template #second>
<ng-template [ngIf]="pqr == 2" [ngIfElse]="third">Second</ng-template>
</ng-template>
<ng-template #third>
<ng-template [ngIf]="abc == 3">Third</ng-template>
</ng-template>
z ng-container
będzie wyglądać następująco:
<ng-container *ngIf="xyz == 1; else second">First</ng-container>
<ng-template #second>
<ng-container *ngIf="pqr == 2; else third">Second</ng-container>
</ng-template>
<ng-template #third>
<ng-container *ngIf="abc == 3">Third</ng-container>
</ng-template>
Ale jeśli chcesz używać dla instrukcji pętli mogę zaoferować następujące rozwiązanie:
<ng-container *ngTemplateOutlet="next; context: { $implicit: 0 }"></ng-container>
<ng-template #next let-i>
<ng-container *ngIf="conditions[i]">
<ng-container *ngIf="conditions[i] && conditions[i].condition(); else shift">{{ conditions[i].result }}</ng-container>
<ng-template #shift >
<ng-container *ngTemplateOutlet="next; context: { $implicit: i + 1 }"></ng-container>
</ng-template>
</ng-container>
</ng-template>
gdzie conditions
conditions = [
{
condition:() => this.xyz === 1,
result: 'First'
},
{
condition:() => this.pqr === 2,
result: 'Second'
},
{
condition:() => this.abc === 3,
result: 'Third'
}
];
Plunker Example
Możliwy duplikat [? Jak używać \ * ngIf indziej w Kątowymi 4] (https://stackoverflow.com/questions/43006550/how-to- use-ngif-else-in-angle-4) – Supamiu
@Supamiu pytanie jest całkowicie inne, Przeczytaj opis Nie chcę tylko, jeśli i jeszcze: wiele warunków może być prawdą, ale chcę wyświetlić pierwszy, który jest prawdą i zostaw resztę –
@Supamiu, czego potrzebuję, jeśli w przeciwnym wypadku, możesz zasugerować, czy istnieje jakikolwiek inny ion –