Je veux utiliser inline if statement in angular2 template comme ceci?
<select [(ngModel)]="value" class="form-control" (blur)="onBlur()">
<option *ngFor="let item of items" [ngValue]="item">{{item.name?item.name:item}}</option>
</select>
comment rendre {{item.name?item.name:item}}
posible en utilisant une déclaration if?
Tout d'abord convertir le nom de l'élément en booléen par !!
ci-dessous devrait fonctionner
{{!!item.name ? item.name : item}}
Vous pouvez utiliser un opérateur ternaire (c'est ce que vous utilisez déjà) ou utiliser la balise <template>
( voir plus ):
<select [(ngModel)]="value" class="form-control" (blur)="onBlur()">
<option *ngFor="let item of items" [ngValue]="item">
<template [ngIf]="item.name">{{ item.name }}</template>
<template [ngIf]="!item.name">{{ item }}</template>
</option>
</select>
Bien sûr, vous pouvez utiliser ngSwitch
au lieu de *ngIf
, mais cela ne change pas beaucoup.
L’utilisation de la balise <template>
présente l’avantage de ne pas créer de balise HTML réelle, ce qui n’est pas autorisé dans l’option.