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提取到角度/离子视图的方法,当我运行我的应用程序时,仍然出现“运行时错误”
答案 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
中检查新用法