我正在从API中检索数据。 API返回具有各种属性的对象。我希望能够访问该对象的属性,但目前只能访问第一个属性。当我从服务中调用可观察对象时,我看到了对象和所有属性。但是,当我从组件中的subscribe中调用对象时,它返回一个空数组。因此,第一个属性在组件中返回,但我无法访问其他任何内容。
我也尝试从observable访问数据并返回我想要的属性,但是当我这样做时它会默默地失败。有人可以告诉我我做错了什么吗?以下是相关代码。
组件:
getPrice() {
this.data.getData(this.API_Price)
.subscribe(
price => this.price = price,
error => this.errorMessage_price = <any>error);
console.log('component', Object.keys(this.price));
}
服务:
getData(url): Observable<any> {
this.showLoader();
return this.http.get(url)
.map(this.extractData)
.catch(this.handleError)
.finally(() => {
this.hideLoader();
});
}
public extractData(res) {
const body = res.json();
console.log('service', body);
return body;
}
public handleError(error: any) {
const errMsg = (error.message) ? error.message :
error.status ? `${error.status} - ${error.statusText}` : 'Server error';
this.showLoader();
console.error('Error', errMsg); // log to console instead
return Observable.throw(errMsg);
}
答案 0 :(得分:0)
也许你想在完整的处理程序中使用console.log?
getPrice() {
this.data.getData(this.API_Price)
.subscribe(
price => this.price = price,
error => this.errorMessage_price = <any>error),
() => console.log('component', Object.keys(this.price));
)
}