web-dev-qa-db-fra.com

Comment utiliser inline if statement à l'intérieur du crochet

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?

6
Youngz ie

Tout d'abord convertir le nom de l'élément en booléen par !! ci-dessous devrait fonctionner

{{!!item.name ? item.name : item}}
12

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.

2
smnbbrv