Vous pouvez essayer d'utiliser ngIf
directive comme:
<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>
avec ng-container
il regardera comme suit:
<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>
Mais si vous voulez utiliser pour instruction de boucle je peux offrir la solution suivante:
<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>
où conditions
conditions = [
{
condition:() => this.xyz === 1,
result: 'First'
},
{
condition:() => this.pqr === 2,
result: 'Second'
},
{
condition:() => this.abc === 3,
result: 'Third'
}
];
Plunker Example
double possible de [? Comment utiliser \ * ngIf autre dans angulaire 4] (https://stackoverflow.com/questions/43006550/how-to- use-ngif-else-in-angular-4) – Supamiu
@Supamiu la question est totalement différente, S'il vous plaît lire la description je veux pas juste si et plusieurs conditions peut être vrai, mais je veux afficher le premier qui est vrai et laisse le reste –
@Supamiu j'ai besoin sinon elseif d'autre, pouvez-vous suggérer s'il y a d'autres solut ion –