我有一个使用以下功能调用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。
答案 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());
}