2017-07-25 74 views
0

我有一個ngIf條件來檢查響應數據。沒有數據時,我得到一個空響應。如果它爲空,我想顯示「找不到數據」。我試過ngIf="!addresses"但它不起作用,我該如何處理? 模板:處理服務器的空響應

<div class="col-md-9 col-sm-9 col-xs-9 *ngIf="(!addresses)"> 

       <div class="col-md-9 col-sm-9 col-xs-9"> 
       No Data Found 

      </div> 
      </div> 

組件:

getData(id){ 

     this.service.GetData(id) 
     .subscribe(addresses => this.addresses = addresses) 
     this.OnceHttp = !this.OnceHttp; 
     } 

響應: Null 服務:

GetData(id){ 
       const eurl='http://localhost/Angular/GetData.php?id=' 
       const url= `${eurl}${id}` 
       return this.http.get(url) 
       .map(this.extractData) 
       .catch(this.HandleError) 

      } 

我從服務器獲取一個空值。有人能告訴我我做錯了什麼嗎?

+0

什麼是這個代碼.dataservice.Getaddress方法? –

+0

什麼意思由空響應當沒有數據?你的後端返回400+響應還是空響應? –

+0

只是空的迴應。 – Prakash

回答

0

更新:

你可以在你的組件,如下定義empty屬性:

getAddress(id){ 
    this.dataservice.Getaddress(id) 
    .subscribe(addresses => this.addresses = addresses); 
    this.OnceHttp = !this.OnceHttp; 
    } 

get empty(){ 
    return this.addresses === null || this.addresses.length === 0; 
} 

然後,你可以使用它來獲取財產在你的模板作爲

<div *ngIf="empty">//code to show when addresses has no content</div> 
+0

如果沒有數據,那麼我應該顯示「找不到數據」。我無法處理響應空。 – Prakash

+0

更新了我的答案,我想我誤解了你的問題 –

+0

它不起作用。地址上不存在.length。沒有它,它不起作用。 – Prakash

0

從刪除hidden你最外面的div:

<div class="col-md-9 col-sm-9 col-xs-9 hidden margin-top" id="blank-skills" 
    *ngIf="!addresses"> 

我會做,雖然一個空檢查,而不是!addresses檢查,如果地址== null,但這只是我的意見:)

沒有hidden,它應該工作:http://plnkr.co/edit/3bKTBjkiQHdBZmnqyhRi?p=preview

+0

如果我得到類似'{error:「NoData」}'的響應怎麼辦?當它爲空時。我該如何處理? – Prakash

+0

我刪除隱藏。並嘗試過。它不工作。 :(我也嘗試過== null也仍然沒有工作 – Prakash

+0

你可以嘗試在重擊中重現問題嗎? – Alex