Есть ли другой подход для обновления страницы в AngularJs? - PullRequest
0 голосов
/ 06 января 2019

Я потратил 2 дня, чтобы узнать, как управлять обновлением страниц после правильной регистрации или выхода из системы входа в систему.

Вот проблема: моя система входа в систему работает до сих пор, но есть тривиальная проблема. Дело в том, что когда я пытаюсь войти в систему, чтобы перейти на домашнюю страницу, мне нужно, чтобы моя домашняя страница была полностью загружена после перенаправления (это похоже на обновление страницы, когда вы нажимаете клавишу F5 на клавиатуре или когда вы нажимаете на ссылка навигации) и так, когда я закончу сеанс входа в систему, чтобы вернуться на страницу входа. Я пробовал несколько подходов:

  1. Включите функцию reload () при инициализации страницы в домашнем контроллере, например:

    функция HomeController (UserService, $ rootScope, $ route, $ window) { var vm = this;

    vm.user = null;
    vm.allUsers = [];
    vm.deleteUser = deleteUser;
    vm.logout = logout;
    
    function loading(){
        $state.reload();
    }
    initController();
    
    function initController() {
        loading();
    }
    

    но заканчивается бесконечный цикл

  2. Используйте функцию в контроллере входа :: window.location.href = "" но приводит к тому же выводу, что и: location.path ();

    функция LoginController ($ location, AuthenticationService, FlashService, $ route) { var vm = this;

    vm.login = login;
    
    (function initController() {
        // reset login status
        AuthenticationService.ClearCredentials();
    })();
    
    function login() {
        vm.dataLoading = true;
        AuthenticationService.Login(vm.username, vm.password, function (response) {
            if (response.success) {
                AuthenticationService.SetCredentials(vm.username, vm.password);
             $window.location.reload();
             //$window.location.href="/"; 
             $location.path('/'); // send to home page
            } else {
                FlashService.Error(response.message);
                vm.dataLoading = false;
            }
        });
    };
    
  3. И reload (), и window.location.href в контроллере входа:

    функция LoginController ($ location, AuthenticationService, FlashService, $ route) { var vm = this;

    vm.login = login;
    
    (function initController() {
        // reset login status
        AuthenticationService.ClearCredentials();
    })();
    
    function login() {
        vm.dataLoading = true;
        AuthenticationService.Login(vm.username, vm.password, function (response) {
            if (response.success) {
                AuthenticationService.SetCredentials(vm.username, vm.password);
             $window.location.reload();
             $window.location.href="/"; 
             //$location.path('/'); // send to home page
            } else {
                FlashService.Error(response.message);
                vm.dataLoading = false;
            }
        });
    };
    

но он сначала загружает пункт назначения, а затем перезагружает эту страницу, независимо от того, какой порядок этих предложений я поместил, поэтому она загружается дважды.

Ни одна из этих попыток не кажется правильной, поэтому мне нужны некоторые предложения от вас, ребята, есть какие-нибудь решения для такой проблемы? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...