当我的用户导航到组管理页面时,我当前在构造函数的http调用中获取组:
@Page({ ..})
export class GroupManager {
constructor(private _http: Http) {
this._http.get(someurl)
.map(..)
.subscribe(..)
}
}
所以我的要求是:每当用户导航到组管理页面时,从服务器获取组。
我想要实现的是在获取组时不显示空白页面(而不是在构造函数中进行http调用)。
任何人都建议在离子2中实现这一目标的更好方法吗?
答案 0 :(得分:1)
如果您希望每次用户导航到页面时都从服务器获取数据,constructor
就不是正确的选择。我们可以使用ionViewWillEnter
事件而不是在那里进行。
不幸的是,我们无法控制数据准备多长时间,但我们可以做的是让用户通过向他/她显示加载消息来了解这一点。这样,我们将避免在获取数据时显示空白页面,并且在数据准备好之前,页面将被禁用(因此用户将无法与其进行交互)。
在Ionic2-beta.11
你可以这样做:
import { Component } from '@angular/core';
import { LoadingController, NavController } from 'ionic-angular';
@Component({
templateUrl:"page1.html"
})
export class Page1 {
private loading : any;
constructor(private _http: Http, private _loadingCtrl: LoadingController) {
}
ionViewWillEnter() {
this.loading = this._loadingCtrl.create({
content: 'Fetching groups...'
});
loading.present();
this._http.get(someurl)
.map(..)
.subscribe((data) => {
// ...
// Hide the message when the data is ready
this.loading.dismiss();
});
}
}