这里不需要管道,管道将用于在模板中实际显示数据,例如,如果您需要迭代对象键,这不能与*ngFor
. 但是既然你想操作组件中的数据......
您需要两个forEaches
才能到达不同对象内的每个类别。在收到数据后,您需要从回调(订阅)中执行此操作,这里有更多信息:如何从 angular2 中的 Observable/http/async 调用返回响应?
我建议您在服务中执行 http 请求,并订阅组件中的数据,因此在您的组件中,调用该服务方法并订阅响应,然后使用 forEach:
ngOnInit() {
this.service.getData()
.subscribe(data => {
this.searchResults = data;
// call method or manipulate data here since response has been received
this.manipulateData();
});
}
manipulateData() {
this.searchResults.forEach((x:any)=> { // iterate outer array
x.categories.forEach((y:any) => { // iterate the categories of each object
console.log(y.name) // ... or whatever properties you have
// manipulate your data
})
})
}