我要做的是,当用户成功登录时,应用会根据用户的角色显示不同的菜单。
登录控制器
//some relevant codes
user = res.data;
localStorage.setItem("user", JSON.stringify(user));
console.log(user[0].role)
if(user[0].role == 1 ){
$scope.isAdmin = true;
$scope.isEmployee = false;
$state.go("app.home");
}else if (user[0].role == 2){
$scope.isEmployee = true;
$scope.isAdmin = false;
$state.go("app.home");
}
在这些控制器中,我尝试使用user
将响应数据设置为localStorage
,以便将其用于以后的目的。如果用户输入了有效的登录凭据,应用将确定其特定角色并重定向到home
。
家庭控制器
function authenticate() {
var user =localStorage.getItem("user");
user = JSON.parse(user);
if(user[0].role == 1){
console.log('admin');
$scope.isAdmin = true;
$scope.isEmployee = false;
console.log($scope.isAdmin);
}else if (user[0].role == 2){
console.log('employee');
$scope.isEmployee = true;
$scope.isAdmin = false;
console.log($scope.isAdmin);
}
}
authenticate();
HTML查看
<ion-side-menu side="left">
<ion-header-bar class="bar-stable">
<h1 class="title">RMS</h1>
</ion-header-bar>
<ion-content>
<ion-list>
<ion-item ng-show="isAdmin" class="item item-icon-left" menu-close href="#/app/home">
<i class="icon ion-home"></i>
Admin Home
</ion-item>
<ion-item ng-if="isEmployee" class="item item-icon-left" menu-close href="#/app/home">
<i class="icon ion-home"></i>
Employee Home
</ion-item>
在此view
中,ng-show
和ng-if
无法正常工作。我在某个ion-item
的简单显示中遇到困难取决于登录用户。
答案 0 :(得分:1)
请查看您是否在右侧控制器中分配isAdmin
和isEmployee
。
通过在HTML中绑定它们来检查{{isAdmin}}
和{{isEmployee}}
是否评估为真/假。
对于第二个问题,请尝试清除localstorage并在注销功能中再次分配$scope.isEmployee = false;
和$scope.isAdmin = false;
。