2017-08-31 55 views
2

我有一個執行get請求並引發錯誤的服務。Angular2-捕獲錯誤並將其顯示在視圖中

service.ts

return this.http.get(/apiUrl) 
.map(
    (response: Response) => { 
     const items = response.json(); 
     return items; 
    }) 
    .catch(
     (error: Response) => { 
     return Observable.throw(error); 
    }); 
} 

我其訂閱到組分和我想顯示在視圖中的錯誤。我搜索這個異常處理,但我無法得到相關的答案,我該怎麼做?

component.ts

this.faqService.getServers() 
    .subscribe(
    (data) => { 
     this.item = data.items; 
     console.log(this.item); 
     }, 
     (error) => console.log(error) 
    ); 
}); 

我可以看到控制檯錯誤如何在視圖中顯示它。

錯誤

enter image description here

回答

2

分配給一個變量,然後顯示

在TS

errorMessage : string; 

,然後聲明一個變量,

this.faqService.getServers() 
    .subscribe(
    (data) => { 
     this.item = data.items; 
     console.log(this.item); 
     }, 
     (error) => { 
     this.errorMessage= error.error_message;    
     } 
    ); 
}); 

,然後在HTML

<h1>{{errorMessage}}</h1> 

您需要從服務返回錯誤,

return this.http.get(/url) 
    .map(
     (response: Response) => {   
      return response.json(); 
     }) 
     .catch(
      (error: Response) => { 
      return Observable.throw(error.json()); 
     }); 
    } 
+0

我想,因爲我在圖像中提到的顯示錯誤的主體。 – Sammy

+0

上述方法應該可以工作 – Sajeetharan

+0

狀態響應:400網址錯誤請求:https://api.stackexchange.com//2.2/search/advanced?key=uBSdSxUAOFTTBe5jSIdq9Q(((access_token=&/2.2/search/advanced? order = desc&sort = activity&accepted = True&closed = True&title = erwe&site = stackoverflow&filter =!* L7QmTklW(QkSp_f **我將此錯誤消息視爲錯誤消息而不是_body ** – Sammy

3

Service.ts 服務應該像

return this.http.get(/apiUrl) 
.map(
    (response: Response) => { 
     const items = response.json(); 
     return items; 
    }) 
    .catch(
     (error: Response) => { 
     return Observable.throw(error.json()); 
    }); 
} 

您組件應該像。 元器件

errorMessage : string; 

this.faqService.getServers() 
    .subscribe(
    (data) => { 
     this.item = data.items; 
     }, 
     (error) => { 
      this.errorMessage = error.error_message; 
     } 
    ); 
}); 

HTML

<span class="alert">{{errorMessage}}</span> 
相關問題