2017-04-17 33 views
0

嗨,我很難理解ngIf。Angular2如何使用ngIf顯示一些其他文本,如果json對象中有空值?

目前我有

Profile:{ 
0:{name: 'Jen', 
intro:'', 
gender:'female', 
age:'1992'}, 
1:{name: 'John', 
intro:'Hi', 
gender:'male', 
age:'1988'} 
} 

第一個對象的介紹是空字符串,當它具有空字符串我想顯示「用戶不寫它尚未」 JSON對象。

我試過用ngIf像這樣,但當然這不起作用。我該怎麼辦?

<div *ngFor="let p of Profile"> 
       <p class="fontstyle2"> 
        {{p.intro}} 
       </p> 

       <p class="fontstyle2" *ngIf="p.intro=''"> 
        The user hasn't written it yet 
       </p> 
      </div> 

回答

2

應該是==不是=

<p class="fontstyle2" *ngIf="p.intro==''"> 
    The user hasn't written it yet 
</p> 
0

ngIf使用JavaScript語法比較,以便您可以使用p.intro === ''或只是!p.intro因爲空字符串是falsy。

另一件事是,你可能只想顯示備選之一,所以你應該都使用ngIf

<div *ngFor="let p of Profile"> 
    <p class="fontstyle2" *ngIf="p.intro"> 
       {{p.intro}} 
    </p> 

    <p class="fontstyle2" *ngIf="!p.intro"> 
     The user hasn't written it yet 
    </p> 
</div> 

另一種選擇是做了這種方式:

<div *ngFor="let p of Profile"> 
    <p class="fontstyle2"> 
     {{p.intro? p.intro : "The user hasn't written it yet"}} 
    </p> 
0

許多人在這裏說你需要使用===而不是隻有=以上的條件。

<div *ngFor="let p of Profile"> 
    <p class="fontstyle2"> 
     {{p.intro}} 
    </p> 
    <p class="fontstyle2" *ngIf="p.intro===''"> 
     The user hasn't written it yet 
    </p> 
</div> 

,或者你可以簡單地檢查!

<div *ngFor="let p of Profile"> 
    <p class="fontstyle2"> 
     {{p.intro}} 
    </p> 
    <p class="fontstyle2" *ngIf="!p.intro"> 
     The user hasn't written it yet 
    </p> 
</div> 
0

要顯示用戶沒有寫它尚未介紹是空白的,如果它不爲空,那麼你要顯示值簡介

爲此,您可以使用以下代碼片段:

​​
相關問題