Woocommerce Ionic 2手动重新加载以获取数据
我正在使用服务从Woocommerce Ionic 2手动重新加载以获取数据,woocommerce,ionic2,Woocommerce,Ionic2,我正在使用服务从woocommerce获取产品。在服务的构造函数中,我进行了一个HTTP get调用,该调用获取产品并订阅本地数据变量。然后我在服务中创建了一个函数getData(),该函数将获取的数据返回到myPage。然后从myPage,从我的组件页面的构造函数调用getData()函数,并将其分配给本地产品数组 问题是,当最初加载我的页面时,我的服务构造函数中的HTTP get调用尚未接收/订阅数据,因此getData()函数调用返回空数组,我必须在服务中接收数据后手动重新加载组件页面,以
woocommerce
获取产品。在服务的构造函数中,我进行了一个HTTP get调用,该调用获取产品并订阅本地数据变量。然后我在服务中创建了一个函数getData()
,该函数将获取的数据返回到myPage
。然后从myPage
,从我的组件页面的构造函数调用getData()
函数,并将其分配给本地产品数组问题是,当最初加载我的页面时,我的服务构造函数中的HTTP get调用尚未接收/订阅数据,因此
getData()
函数调用返回空数组,我必须在服务中接收数据后手动重新加载组件页面,以获取我页面中的数据
知道我做错了什么吗?以及可能的解决方案谢谢 这是我的密码
Service is fetching data from woocommerce.
constructor(public http: Http) {
console.log("itemservice constructor called")
this.http.get(`${this.producturl}`).map(res=><Product[]>res.json()).subscribe(prods =>{
console.log("inside subscribe");
this.items=prods;
});
getData(){
return this.items;
}
根据你的描述,看起来你真的可以从你的服务中获取数据,虽然我不确定你为什么要把逻辑放在构造函数中,但看起来你错过了一些关于Angular的基本概念,这都是关于数据绑定的,因此你的页面/组件应该绑定到可观察的数据,并将自动“更新”获取数据时 我不确定你的意图,但我会这样做,最重要的是观点,注意:从未测试过
constructor(public http: Http) {
console.log("itemservice constructor called")
}
getData(){
this.http.get(`${this.producturl}`).map(res=><Product[]>res.json()).subscribe(prods =>{
console.log("inside subscribe");
this.items=prods;
});
视图:
代码胜过文字。建议解决方案很容易。谢谢你的建议。我已经添加了代码,请看一下。我明白你的意思。我应该订阅我的页面而不是服务。
constructor(public http: Http) {
console.log("itemservice constructor called")
}
getData(){
this.http.get(`${this.producturl}`).map(res=><Product[]>res.json()).subscribe(prods =>{
console.log("inside subscribe");
this.items=prods;
});
constructor(public nav: NavController, public categoryService:
CategoryService, public itemService: ItemService, public loadingCtrl:
LoadingController)
{
this.itemService.getData();
}
<div *ngFor="let item of itemService.items" >
</div>