1

我有一项服务调用具有以下功能的 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举例说明这一点

4

3 回答 3

3

使用 KeyValue Pipe 将解决问题

<div *ngFor="let item of clients | keyvalue">
    Key: <b>{{item.key}}</b> and Value: <b>{{item.value}}</b>
</div>
于 2018-10-25T13:07:23.800 回答
0

尝试这个 :

this.clients = res.data;
于 2018-10-25T12:52:39.677 回答
-2

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

getAll(): Observable<Client[]> {
    return this.http.get<Client[]>(`${this.url}/clients`).map(res=>res.json()); 
}
于 2018-10-25T12:54:13.657 回答