2017-01-25 39 views
4

聲明我想用內嵌if語句在這樣angular2模板?如何使用內聯如果內部支架

<select [(ngModel)]="value" class="form-control" (blur)="onBlur()"> 
    <option *ngFor="let item of items" [ngValue]="item">{{item.name?item.name:item}}</option> 
</select> 

如何使內聯if語句使{{item.name?item.name:item}}變爲可能?

+0

你有沒有試過'[ngValue] =「item.value item.value:項目」' –

+1

你可以像你使用它:)它應該工作使用它,這是什麼問題? –

+0

我的問題是同一時間項目是字符串而其他是對象。 ,所以我想使這個動態 –

回答

5

首先將項目名稱由以下!!爲布爾應該工作

{{!!item.name ? item.name : item}} 
+0

它有什麼變化? – smnbbrv

+0

不需要這個。 –

+1

條件語句應該通過最佳實踐 –

2

您可以使用一個三元操作符(這是你已經在使用),或使用<template>標籤(see more):

<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> 

當然,您可以使用ngSwitch而不是*ngIf,但它並沒有太大改變。

使用<template>標籤的優點是它不會產生這是不允許的選項裏面真正的HTML標籤。

+0

是的,這項工作也是。 –