2016-06-01 2 views
0

Ich möchte diesen Codes meinen ng-if Wert "LoggedIn" in index.html von meinem login/login.js ändern, indem Sie mitändern ng-if-Anweisung in app.js vom Controller

$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); 
    }); 
}; 

und ich habe diese Art von stateProvider in mein 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' 
     }) 

und trenne ich jeden Zustand durch 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> 

aber ich scheint, dass es keine Auswirkungen gegeben hat, auch habe ich angemeldet und umgeleitet werden, die Aussage für loggedIn änderte sich nicht, noch false

Ich habe die Dateien setzen in GitHub

Hat jemand Haben Sie eine Idee, wo ich einen Fehler gemacht habe, so dass meine loggedIn-Anweisung nicht geändert werden konnte?

+1

sicher, dass Sie nicht die rootScope Variable mit einem Steuerungsbereich Variable mit dem gleichen Namen –

+0

@NitsanBaleli machen ändern Shadowing Ich habe erkannt, dass ich nach innen immer „false $ scope.loggedIn =“ nennen mein Controller, also hat es nicht funktioniert. Danke für deinen Rat! – Lyriene

Antwort

0

Gerade <div ng-if="!loggedIn" zu <div ng-if="!$root.loggedIn"

+0

Danke, Roman. Ich habe gerade gemerkt, dass ich '$ scope.loggedIn = false 'immer in meinem Controller anrufe, also hat es nicht funktioniert. Vielen Dank! – Lyriene