首页 > 解决方案 > 在AngularJs中刷新页面还有其他方法吗?

问题描述

我花了 2 天的时间来了解如何管理登录系统正确登录或注销后页面刷新的方式。

问题是:我的登录系统到现在都可以正常工作,但是有一个小问题。问题是当我尝试登录到主页时,我需要在重定向后完全加载我的主页(这就像你在键盘上按 F5 键或单击时刷新页面一样导航的链接),所以当我完成登录会话时返回登录页面。我尝试了一些方法:

  1. 在 Home 控制器中初始化页面时放入 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. 使用 Login Controller:: 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;
            }
        });
    };
    

但是无论我把这些句子的顺序如何,它都会先加载目的地然后重新加载该页面,所以它加载了两次。

这些尝试似乎都不对,所以我需要你们的一些建议,有没有解决这个问题的方法?谢谢!

标签: angularjs

解决方案


推荐阅读