简要说明正在发生的事情:当我在移动设备上打开应用时,它直接从login.html
dashboard.html
我试图实现的目标:在第一次打开应用程序后,给出用户名和密码后,就成功响应用户名和密码信息保存在本地存储中。从下次打开应用程序时,应用程序转到login.html,在其ngOnInit()
中,它检查了用户是否已经登录,然后将其导航到'dashboard.html else stays at
login.html` page。
,但是即使在安装应用程序后的第一次,我也需要dashboard.html
。我在做什么错?
login.ts
代码:
ngOnInit()
{
if(this.storage.get('user').then((val) => {
if(val===''){
console.log("this key does not exists");
this.storage.set('user','');
}
else {
this.navCtrl.setRoot(DashboardPage);
console.log('user::',val);
}
console.log("i am out of if");
}))
{
}
{console.log('user',val);});
}
请检查我的状况,让我知道需要做什么。
不需要所有storage.get
代码都在if语句中,甚至不可能(据我所知,也许,如果您返回布尔值),您只需要这个
ngOnInit(){
this.storage.get('user').then((val) => {
if (val === '') {
console.log("this key does not exists");
this.storage.set('user', '');
} else {
this.navCtrl.setRoot(DashboardPage);
console.log('user::', val);
}
console.log("i am out of if");
});
}
另外,您还需要设置用户,因为''
第一次打开应用程序时,如果您不这样做,则您的val
将是无效的,并且它将掉落到您的其他情况下,您的用户将获得访问权限即使没有记录或完全拥有帐户,dashboardpage也会每次仪表板。
因此,如果您不将用户设置为''
,那就不要设置它并将其设置为null,那就更好了,那么您可以按照此
ngOnInit(){
this.storage.get('user').then((val) => {
if (val) {
this.navCtrl.setRoot(DashboardPage);
console.log('user::', val);
} else {
console.log("this key does not exists");
}
console.log("i am out of if");
});
}
希望这会有所帮助。