Так что, когда мой пользователь входит в меня этот кодrootScope получает undifined при изменении маршрута
var promise = UserFactory.doLogin(userCredentials);
promise.success(function (data, status) {
//set some localstorage vars
//only on login's success get additional data
var anotherPromise = UserDataFactory.getUserData();
anotherPromise.success(function (data, status){
if(data.code == 2){
$rootScope.userHead = true;
}
});
$rootScope.userHead = true;
будет показать/скрыть подменю в соответствии с его значением (истина/ложь). HTML в подменю является
<div class="panel panel-default text-center" style="text-align: center;" ng-hide="userHeader">
страница, которая включает в себя меню, включен в некоторых страницах с <div id="submenu" ng-include="'submenu.html'" ></div>
. Эти страницы находятся в маршрутах как так
.when('/user', {
templateUrl: 'user.html',
controller: 'userController',
animation: 'second',
access: {
requiredLogin: true
}
})
//user.html includes menu with ng-include="'submenu.html'"
Когда я иду на страницу пользователя, $rootScope.userHead
имеет значение и подменю скрыта, как это должно быть. Если я нажму обновить, $rootScope.userHead
будет undifined
, и я вижу подменю.
Я не вижу перезаписи на $rootScope.userHead
. Разве это теряет свою ценность, когда я перехожу на другую страницу? Должен ли он сохранить свою ценность?
Что мне не хватает? Как это исправить?
Благодаря
При обновлении приложение перезапускается с нуля. Все экземпляры служб и переменных переопределены. Вы просто не можете обновить угловое приложение и mantain non persistent variables. –
@ItaloAyres спасибо. Итак, что вы предлагаете? Должен ли я сохранять «userHead» в другом месте? Поместите его в локальное хранилище вместо Углового, например? – slevin
Может быть. Но если при запуске приложения вы используете LoginService, чтобы узнать, был ли пользователь уже зарегистрирован или что-то в этом роде, вы можете установить этот конфиг в этой службе. Если вы поймете, что я имею в виду. –