我试图从404响应中获取JSON,但我只得到
Response {_body: "{myJSON}", status: 404, ok: false, statusText: "Not Found", headers: Headers…}
如何获取object
本身,以便我可以使用{{error.text}}
打印我的HTML,就像我在http.get()
上所做的那样?
这是我的代码:
getList(): Promise<Response> {
return this.http.get(this.apiUrl+'list/')
.toPromise()
.then(response => {
console.log(response.json()); return response.json()})
.catch(this.handleErrorPromise)
}
//if an error ocurred while doing api calls
private handleErrorPromise (error: Response | any) {
console.error("EEEEE" + error.message || error);
return Promise.reject(error.message || error);
}
当它加入.then
时它确实很好,它会返回一个对象,所以在component
我可以使用它(我在我的组件上使用它...让我知道是否它是好的还是有其他方法请)
ngOnInit(): void {
this.ListServiceProvider.getList().then(
list=> {this.mList= list; console.log(list)},
error => {this.errorMessage = error; console.log(error)});
}
所以在我的HTML上我有一个*ngIf=errorMessage
所以它加入了这个div,而不是在响应没问题的时候,但是它没有显示我想要的JSON ...你能说出来吗?我的代码有什么问题?
答案 0 :(得分:1)
你可以在这种情况下使用新的Angular If else
<ng-template #fetching>
//you can even check here optional ngIf
<p *ngIf = "errorMessage">{{errorMessage?.imageURL}</p> // update after comment
</ng-template>
<p *ngIf="mList; else fetching;">
// when Data comes do something here else use the else template
</p>