我正在使用BaQend和Ionic2,并尝试在App-start上完成一些任务。
1. 数据库就绪
我不想在每个页面上都这样做:
ionViewCanEnter(): Promise<baqend> {
// Check if the Baqend SDK is ready and wait for initialization
return this.ready.resolve().then(db => this.db = db);
}
我试过这个,但它不起作用:
initializeApp() {
this.platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
this.statusBar.styleDefault();
this.splashScreen.hide();
return this.ready.resolve().then(db => this.db = db);
});
}
2. 检查用户登录状态
在应用程序启动时,我应该检查用户的登录状态,如果他/她没有登录,它应该打开登录模式。
ionViewWillEnter(){
if (this.db.User.me) {
console.log(this.db.User.me.username,' entered HomePage with ID ', this.db.User.me.id);
} else {
this.openLoginModal()
console.log('Hello Anonymous');
}
}
这是rootPage的工作代码,但最好将其放入应用程序启动中。
有什么想法吗?
很好的观点,
我们已经更新了我们的离子启动器。我们将 DBReady 检查移动到根视图。 在我们的启动器中,这是tabs.component.ts。然后,Rootview 在呈现子视图之前始终在数据库上等待。
如果同时更新 db.service.ts,则还可以立即使用从 SDK 导出的数据库。
import { db } from "baqend";