从Http.get()

时间:2017-06-23 08:56:18

标签: angular typescript ionic-framework ionic2

我试图从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 ...你能说出来吗?我的代码有什么问题?

1 个答案:

答案 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>