我正在使用.net核心WEB API挂钩Angular 4.
Web API根据传入的ID返回字符串中的CustomerName。
这是Angular 4中的服务方法。 我知道angular / http必须返回一个Observable,因为它是一个异步调用。
但是如何返回字符串? 或者如何从调用方法访问Observable对象中的数据?
getCustomerName(id: number): Observable<any>{
return this._http.get(this.baseUrl + 'api/getCustomerName/' + id )
.map((response: Response) => <any>response.json() )
.catch(this.handleError);
}
答案 0 :(得分:1)
要从observable访问数据,在您的服务中返回您从api获得的响应,如下所示:
getCustomerName(id: number): Observable<any>{
return this._http.get(this.baseUrl + 'api/getCustomerName/' + id );
}
并在您的组件中调用服务方法:
getCustomerName(id).subscribe(
data => {
console.log(JSON.parse(data));
},
error => {
console.log(error);
});
答案 1 :(得分:0)
将此函数与map运算符一起使用:
private extractData(res) {
let body = res.json(); // If response is a JSON use json()
if (body) {
return body.data || body;
} else {
return {};
}
}
并在服务使用地图中这样:
return this.http.post(url, body, options)
.map(this.extractData)
如果它不是json,那么只需省略解析线