ng-show和ng-if不用于离子离子项目

时间:2017-09-27 06:10:13

标签: angularjs ionic-framework

我要做的是,当用户成功登录时,应用会根据用户的角色显示不同的菜单。

登录控制器

//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-showng-if无法正常工作。我在某个ion-item的简单显示中遇到困难取决于登录用户。

1 个答案:

答案 0 :(得分:1)

请查看您是否在右侧控制器中分配isAdminisEmployee。 通过在HTML中绑定它们来检查{{isAdmin}}{{isEmployee}}是否评估为真/假。

对于第二个问题,请尝试清除localstorage并在注销功能中再次分配$scope.isEmployee = false;$scope.isAdmin = false;