2016-11-03 18 views
0

我正在製作一個Angular2應用程序,並從服務器檢索一個設備數組。並非所有設備都具有「品牌」或「類型」屬性。我想要顯示它們中的任何一個,但是如果它們都錯過了,我想顯示'Device#'。 我試圖用一個ngSwitch,但似乎無法使其工作...使用ngSwitch與Angular2中的條件屬性的對象

<div *ngFor="let device of devices; let i=index"> 
    <div [ngSwitch]="device"> 
    <a *ngSwitchCase="device.brand">{{device.brand}}</a> 
    <a *ngSwitchCase="device.type">{{device.type}}</a> 
    <a *ngSwitchDefault>Device {{i+1}}</a> 
    </div> 
</div> 

回答

1

ngSwitch採取實際值:

<div [ngSwitch]="gender"> 
    <div *ngSwitchCase="'male'">...</div> 
    <div *ngSwitchCase="'female'">...</div> 
</div> 

您嘗試使用它作爲ngIf

,將解決你的問題的代碼是:

<div *ngFor="let device of devices; let i=index"> 
    <div [ngSwitch]="device"> 
    <a *ngIf="device.brand && !device.type">{{device.brand}}</a> 
    <a *ngSwitchCase="device.type && !device.brand">{{device.type}}</a> 
    <a *ngIf="!device.type && !device.name">Device {{i+1}}</a> 
    </div> 
</div> 
+0

謝謝,我買了只ngIf你那裏做同樣的方式解決它最終。 –