Я пытаюсь сохранить информацию о пользователе при обновлении страницы. Для этой цели я использовал cookieStore
. Таким образом, мой модуль запуска в приложении Angular выглядит так.AngularJS: Сохранять информацию о пользователе при обновлении страницы
.run(['$rootScope', '$cookieStore', '$state', function($rootScope, $cookieStore, $state) {
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, $location){
var requireLogin = toState.data.requireLogin;
if(typeof $rootScope.user == 'undefined'){
$rootScope.user=$cookieStore.get("user");
$rootScope.sessionid=$cookieStore.get("session");
}
if(requireLogin && typeof $rootScope.user === 'undefined'){
event.preventDefault();
$state.go('login', null, {notify: false}).then(function(state) {
$rootScope.$broadcast('$stateChangeSuccess', state, null);
});
}
});
Две основные вещи, которые я хотел добиться от этого,
- Есть, чтобы получить информацию
user
иsession
из локального хранилища браузера, когда страница обновления. - Если пользователь не определен, он должен быть перенаправлен на страницу входа в систему. Он предназначен для ограничения доступа пользователей к промежуточным страницам без входа в систему.
Если пользователь undefined
, и данные не доступны в локальном хранилище, первый if statement
дает ошибку и второй if statement
оленьей коже работы.
Поэтому, когда пользователь пытается посетить любую страницу в первый раз, не переходя на страницу входа в систему, он не перенаправляется на страницу входа в систему, потому что код не был первым if statement
, второй if
не работает.
Как я могу достичь обеих функциональных возможностей вместе?
Спасибо
спасибо. Попробуй это и посмотри. –