我花了两天时间来了解如何管理登录系统正确登录或注销后刷新页面的方式。
这是问题所在:到目前为止,我的登录系统运行正常,但是有一个小问题。事实是,当我尝试登录到首页时,我需要在重定向后完全加载我的首页(这就像在按键盘上的F5键或单击时刷新页面一样)。导航的链接),因此当我完成登录会话后返回登录页面。我尝试了一些方法:
在Home控制器中初始化页面时放入reload()函数,如下所示:
function 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();
}
但是它会导致无限循环
在登录控制器中使用该功能:: window.location.href =“” 但结果却与:location.path();
function 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;
}
});
};
登录控制器中的reload()和window.location.href:
function 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;
}
});
};
但是它首先加载目标,然后再重新加载该页面,无论我把这些句子的顺序如何,所以它加载了两次。
这些尝试似乎都不对,所以我需要你们的一些建议,这样的问题有解决方案吗?谢谢!