在我的app.component.ts中,我添加了包含所有页面的侧边菜单。对于登录/注册页面,我添加了以下脚本:
<button menuClose ion-item (click)="authenticate()" *ngIf="!isLoggedIn">
<ion-icon name="log-in"></ion-icon> Login/Register
</button>
<button menuClose ion-item (click)="logout()" *ngIf="isLoggedIn">
<ion-icon name="log-out"></ion-icon> Logout
</button>
如您所见,如果变量 isLoggedIn
为 false,则应显示login
,否则将显示注销按钮。
当用户登录并在存储中设置了user_id
,并且 isLoggedIn 更改为 true 时,不会显示注销按钮。
以下是登录脚本:
if (response && response.status === 'success') {
console.log(response.response.user_id);
this.globalVar.loggedIn=true;
// localStorage.setItem('user_id', response.data.user_id)
this.storage.set('user_id', response.response.user_id);
this.storage.set('fname', response.response.fname);
this.storage.set('lname', response.response.lname);
this.storage.set('email', response.response.email);
loading.dismiss();
this.storage.get('user_id').then((data)=>{
this.globalVar.user_id=data
});
this.storage.get('fname').then((data)=>{
this.globalVar.fname=data
});
this.storage.get('lname').then((data)=>{
this.globalVar.lname=data
});
this.storage.get('email').then((data)=>{
this.globalVar.email=data
});
this.viewCtrl.dismiss();
let dataToSend={
'offer_id': this.offer_id,
'offerSelected': this.offerSelected,
'user_id': this.globalVar.user_id
};
if(this.offerSelected && this.offer_id!='')
{
this.navCtrl.push(OfferDetailsPage, {
data: dataToSend
})
}
}
else if (response && response.status == 'failed') {
this.message = response.message;
loading.dismiss();
}
else
{
this.message = 'Server is currently unavailable'
loading.dismiss();
}
}, (error) => {
loading.dismiss();
this.showAlert(error.message);
console.log(error)
})
}
我安慰了isLoggedIn,这是真的。
这是一些非常混乱的代码,据我所知,您没有引用正确的变量名称,或者您只是没有显示从社区获得任何帮助所需的所有代码。
您设置变量"this.globalVar.loggedIn=true;">
你的 if 语句正在查看一个名为 "isLoggedIn" 的变量
变量在哪里定义?这可能在您的控制器文件中,然后加载带有 if 语句的按钮的离子视图。