У меня очень простая служба регистрации, нет подлинной аутентификации, но когда я перенаправляюсь с обновлением страницы, используя $ window.location.href, данные теряются. Когда пользователь получает «вход в систему», и страница перенаправляется на главную страницу, вместо этого ее разрешает как loggedIn = false и перенаправляет обратно на страницу входа.Данные AngularJS получают «сброс» после обновления
Как я могу предотвратить это?
Code snippets:
LoginController
ApiService.getUser($scope.user)
.success(function (data) {
UserService.user = data;
UserService.isLogged = true;
$window.location.href = '/';
})
UserService
return {
user: {},
isLogged: false
};
RequireLoginService
return {
loginRequired: function() {
var deferred = $q.defer();
if (!UserService.isLogged) {
deferred.reject();
$location.path('/login');
} else {
deferred.resolve()
}
return deferred.promise;
}
}
модуль приложения
$routeProvider
.when('/', {
templateUrl: 'views/sheet.html',
controller: 'SheetCtrl',
resolve: {
loginRequired: function(RequireLoginService) {
return RequireLoginService.loginRequired();
}
}
})
использование $ location.path() вместо окна. местоположение так же, как вы это делаете в RequireLoginService –
Это то, что я делал раньше, но мне нужно обновить страницу входа, у меня есть контроллер для моего навигатора, который находится за пределами ng-view, для которого требуется обновление на всей странице. sh Правильные данные. – Taerus
Когда вы обновляете страницу, ваше приложение перезапускается. Вы должны использовать локальное хранилище или файлы cookie для хранения информации о пользователе. –