Angular 7 Http Get返回“ [object Object]”

时间:2018-10-25 12:50:48

标签: angular http observable angular7

我有一个使用以下功能调用API的服务:

getAll(): Observable<Client[]> {
    return this.http.get<Client[]>(`${this.url}/clients`) 
}

在我的组件中,服务调用:

  getClients() {
      this.clientService.getAll().subscribe(
      res => {
         this.clients = res;
         console.log(this.clients);
      },
      err => {
        console.log(err);
      }
);}

有了这个,我得到了一个对象的响应对象。我的API返回了一个对象数组,但是某种程度上,Observable函数将具有数字索引的对象的数据转换为: Console img with error

有人知道出什么问题吗?

解决方案:

使用KeyValue Pipe是一种@@ Suryan评论的解决方法。 问题是我的API中的排序方法,该方法将数组更改为对象。不必在服务中使用管道或映射,也不必使用管道键值。 @Suryan make an example demonstrating this point

3 个答案:

答案 0 :(得分:1)

使用KeyValue Pipe可以解决问题

<div *ngFor="let item of clients | keyvalue">
    Key: <b>{{item.key}}</b> and Value: <b>{{item.value}}</b>
</div>

答案 1 :(得分:0)

尝试一下:

this.clients = res.data;

答案 2 :(得分:-2)

尝试在.service.ts文件中进行以下更改

getAll(): Observable<Client[]> {
    return this.http.get<Client[]>(`${this.url}/clients`).map(res=>res.json()); 
}