Перезагрузить страницу в угловых JS после выхода
Привет, ребята, я новичок в разработке среднего стека. Я пытался обновить страницу после выхода из системы. Я пытался location.reload()
; но это не работает, скажите мне возможный код для перезагрузки страницы в этом сценарии
$rootScope.$on('$routeChangeStart', function (event) {
var storage = userService.isLoggedIn();
console.log(storage);
if (!storage) {
console.log('DENY');
$rootScope.adminlogin = "adminlogin";
console.log($rootScope.adminlogin);
$location.path('/login');
$route.reload();
// $state.go('/login', null, {reload: true});
}
else {
console.log('ALLOW');
$rootScope.admindashboard = "admindashboard";
var path = $location.path();
console.log(path);
console.log(storage);
if(path == '/login'){
$location.path('/');
}
}
});
3 ответа
Все, что вам нужно сделать, это маленькая линия Vanilia JS: document.location.href=document.location.href
РЕДАКТИРОВАТЬ: почему это становится подавленным?
Вы должны использовать $window.location.reload()
из сервиса $ window, если вы хотите обновить страницу. Это делает то же самое, что и кнопка перезагрузки в вашем браузере.
Причина, по которой вы должны использовать сервис $ window вместо прямого доступа к нативному window
объект согласно документации AngularJS:
Хотя окно доступно глобально в JavaScript, оно вызывает проблемы с тестируемостью, потому что это глобальная переменная. В AngularJS мы всегда обращаемся к нему через сервис $ window, так что он может быть переопределен, удален или проверен для тестирования.
На боковой ноте, как вы заявили, вы используете $route
сервис, просто звоню $route.reload()
перезагрузит только ваши контроллеры, а не все приложение.
Если вы используете маршруты, то при выходе из системы просто направьте его на страницу входа.
Снимок из демоверсии:
это мои маршруты:
$routeProvider
.when('/login', {
controller: 'LoginController',
templateUrl: 'modules/authentication/views/login.html',
hideMenus: true
})
.when('/', {
controller: 'HomeController',
templateUrl: 'modules/home/views/home.html'
})
.otherwise({ redirectTo: '/login' });
и когда я нажимаю "Выйти" на моей странице, это должно сделать что-то вроде:
<p><a href="#/login">Logout</a></a></p>
он должен перенаправить на страницу входа в соответствии с маршрутами.