角度5从响应中提取数据

时间:2018-12-18 15:46:30

标签: angular ionic-framework ionic3 angular5

product-service.ts

provinsi():Observable<any> {
return this.http.get('http://127.0.0.1:8000/api/provinsi').pipe(
map(this.extractData),
catchError(this.handleError));
}
public extractData(res: Response) {
let body = res;
return body || {};
}

restaurant.ts

provinsi() {
    this.pservice.provinsi()
        .subscribe(data => this.provinsis = data.results);
}

json

{"results":[{"province_id":"1","province":"Bali"},{"province_id":"2","province":"Bangka Belitung"} . . .

我需要一种将json提取到角度/离子视图的方法,当我运行我的应用程序时,仍然出现“运行时错误”

1 个答案:

答案 0 :(得分:1)

您的问题在extractData中。您将返回一个Response对象,因此在使用该对象时将没有预期的json。要解决此问题,请使用Response方法从.json()对象获取json:

 public extractData(res) {
    let body = res.json();
    return body || {};
 }

提示:访问json属性时,可以使用称为解构的ES6功能。例如:

provinsi() {
    this.pservice.provinsi()
        .subscribe(({ results }) => this.provinsis = results);
}

更新: 如果要使用TypeScript类,则需要从Response导入@angular/http类:

import { Http, Response } from '@angular/http';

不推荐使用该类。您可以在此问题here

中检查新用法