Я хочу изменить ng-if
значения «LoggedIn» в index.html из моих login/login.js
с помощью этой кодыИзменения нг-если заявление в app.js от контроллера
$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
ли кто-нибудь есть какая-то идея, где я допустил некоторую ошибку, поэтому мой оператор loggedIn не может быть изменен?
убедитесь, что вы не затенять переменную rootScope с переменной в области видимости контроллера с тем же именем –
@NitsanBaleli Я просто понял, что я всегда называю «$ scope.loggedIn = ложь» внутри мой контроллер, так что это не сработало. Спасибо за советы! – Lyriene