Перезагрузить страницу в угловых 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>

он должен перенаправить на страницу входа в соответствии с маршрутами.

Другие вопросы по тегам