【发布时间】:2019-01-02 13:14:40
【问题描述】:
我正在尝试打印从 RESTful API 请求中获得的 JSON 响应:
products:Observable<any>;
constructor(public navCtrl: NavController, private backgroundGeolocation: BackgroundGeolocation, public zone: NgZone, private auth: AuthService, public httpClient: HttpClient)
{
this.products = this.httpClient.get('http://127.0.0.1:8000/product');
}
如果我在控制台中打印结果,它确实可以正常工作:
this.products
.subscribe(data => {
console.log('my data: ', data);
});
数据是对的。
但是现在,我不知道如何将它们打印到 HTML 页面上。我试过了,但它不起作用:
<ion-list>
<ion-item *ngFor="let p of (products | async)?.results">{{ p.productName}}
</ion-item>
</ion-list>
还有其他方法可以解决问题吗?
我的 JSON 响应是这样的:
0: Object { idProduct: "1", productName: "Pasta", purchased: "0" }
1: Object { idProduct: "2", productName: "latte", purchased: "0" }
我已经解决了这个问题。我想发布解决方案以帮助其他用户在这种糟糕的情况下。 解决方案就是这么简单。我创建了一个名为“rest-service”的新打字稿文件,由:
@Injectable()
export class RestServiceProvider {
constructor(public http: HttpClient) {
console.log('Hello RestServiceProvider Provider');
}
getUsers() {
return new Promise(resolve => {
this.http.get('http://127.0.0.1:8000/product').subscribe(data => {
resolve(data);
}, err => {
console.log(err);
});
});
}
}
现在,在 home.ts 中我已经做到了:
getUsers() {
this.restProvider.getUsers()
.then(data => {
this.products = data;
console.log(this.products);
});
}
然后,在构造函数中:
this.getUsers();
在HTML端,解决方法非常非常简单:
<ion-item *ngFor="let p of products"> {{ p.productName }}
不过,谢谢大家
【问题讨论】:
标签: html json rest ionic-framework