2016-06-01 52 views
0

我想从我的login/login.js index.html中改变我的ng-if值“的loggedIn” app.js声明通过使用此代码变化NG-如果从控制器

$scope.doLogin = function() { 
    console.log('Logging in as ', $scope.loginData.email); 
    AuthService.login($scope.loginData) 
    .then(function() { 
     $rootScope.loggedIn = true; 
     $scope.layout = 'styles'; 
     $state.go('app.mainReg'); 

     $stateParams.id = $currentUserId; 
     console.log($currentUserId); 
    }); 
}; 

,我有这种stateProvider的我app.js

.state('app', { 
      url:'/', 
      abstract: true, 
      views:{ 
       'bodyLogin': { 
        templateUrl : 'views/login/body.html', 
        controller : 'BodyController' 
       }, 
       'bodyMain': { 
        templateUrl : 'views/main/body.html', 
        controller : 'BodyController' 
       } 
      } 
     }) 
.state('app.mainUnreg', { 
      url:'home', 
      views: { 
       '[email protected]': { 
        templateUrl : 'views/login/home.html', 
        controller : '' 
       } 
      } 
     }) 
.state('app.mainReg', { 
      url:':userID', 
      views: { 
       '[email protected]': { 
        templateUrl : 'views/main/header.html', 
        controller : '' 
       }, 
       '[email protected]': { 
        templateUrl : 'views/main/sidebar.html', 
        controller : '' 
       }, 
       '[email protected]': { 
        templateUrl : 'views/main/home.html', 
        controller : '' 
       }, 
       '[email protected]': { 
        templateUrl : 'views/main/footer.html', 
        controller : '' 
       } 
      }, 
      controller: 'MainController' 
     }) 

,我通过DIV

<div ng-if="!loggedIn" ui-view="bodyLogin" class="site-wrapper" ui-sref-active="app.mainUnreg"></div> 

<div ng-if="loggedIn" ui-view="bodyMain" ui-sref-active="app.mainReg"></div> 

分隔每个状态但是,我似乎它没有给出任何效果,甚至我已经登录和被重定向,为loggedIn声明没有变化,依然false

我已经把文件GitHub

有谁有任何想法,我犯了一些错误,所以我的登录声明无法更改?

+1

确保你没有阴影与控制器范围变量rootScope变量名称相同 –

+0

@NitsanBaleli我才意识到,我总是称之为“$ scope.loggedIn =假”内我的控制器,所以它没有工作。感谢您的建议! – Lyriene

回答

0

只要改变<div ng-if="!loggedIn"<div ng-if="!$root.loggedIn"

+0

谢谢你,罗马人。我只是意识到,我总是在我的控制器中调用'$ scope.loggedIn = false',所以它不起作用。谢谢! – Lyriene