在Angular中获取HTTPClient的值 [英] Get value of HTTPClient in Angular
本文介绍了在Angular中获取HTTPClient的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
data-sharing.service.ts
public httpGetAll(owner: any) {
return this.http.get(`${this.url}/${owner}`, this.httpOptions).pipe(
catchError(e => {
throw new Error(e);
})
);
}
public httpGetAllBy(id: number, byId:string, owner: any) {
return this.httpGetAll(owner).subscribe(data => {
Object.keys(data).map(function(key) {
return data[key].filter(x => x[byId] === id);
});
})
station.service.ts
getStationsByOrg(id) {
return this.dataSharing.httpGetAllBy(id, 'orgId', 'station');
}
managestation.component.ts
getStationsByOrg(id) {
this.sta = this.staService.getStationsByOrg(id);
}
managestation.component.html
<ion-content class="body">
<ion-button expand="block" (click)="onAddStation()">Add Station
<ion-icon name='add' slot="end"></ion-icon>
</ion-button>
<ion-list>
<ion-item *ngFor="let s of sta">
<ion-label>{{ s.name }}</ion-label>
<ion-label>{{ s.orgId }}</ion-label>
<ion-icon name='create' slot="end" (click)="onEditStation(s.id)"></ion-icon>
<ion-icon name='trash' slot="end" (click)="onDeleteStation(s.id)"></ion-icon>
</ion-item>
</ion-list>
</ion-content>
错误
ERROR错误:"[对象对象]" Angular 11 core.js:4002
ERROR Error: "[object Object]" Angular 11 core.js:4002
如何在 managestation.component.ts 中获取 httpGetAllBy 的值并将其分配给this.sta. ?
How can I get the values of httpGetAllBy in managestation.component.ts and assign it to this.sta. ?
推荐答案
按如下所示修改文件
data-sharing.service.ts
public httpGetAllBy(id: number, byId:string, owner: any) {
return new Promise((resolve, reject) => {
this.httpGetAll(owner)
.subscribe(data => {
let filterdData = Object.keys(data).map(function(key) {
return data[key].filter(x => x[byId] === id);
});
resolve(filterdData);
})
});
}
managestation.component.ts
getStationsByOrg(id) {
this.staService.getStationsByOrg(id)
.then((allData) => {
this.sta = allData;
})
}
这篇关于在Angular中获取HTTPClient的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文