gpt4 book ai didi

javascript - Angular UI 路由器 : URL is changing but view keeps loading (preloader)

转载 作者:行者123 更新时间:2023-11-27 22:36:01 30 4
gpt4 key购买 nike

我有一个无法解决的问题。我试图阻止未经身份验证的用户访问我的网络应用程序。当我尝试访问受限页面(例如/profile)时,应用程序的 url 更改为/login,但我的预加载器不断加载状态。当我硬刷新页面时,登录页面会正确加载。

当我登录并手动删除我的 token 并通过单击链接更改状态时,ui-router 也会将我重定向到登录页面。

因此,仅当未登录的用户尝试通过 url (www.example.com/#/profile) 访问 Web 应用程序时,才会出现此问题。

我认为这很小,但我真的不知道去哪里看......

App.states.js

.state("restricted", {
abstract: true,
url: "",
templateUrl: 'app/views/restricted.html',
resolve: {
deps: ['$ocLazyLoad', function ($ocLazyLoad) {
return $ocLazyLoad.load([
'lazy_uikit',
'lazy_selectizeJS',
'lazy_switchery',
'lazy_prismJS',
'lazy_autosize',
'lazy_iCheck',
'lazy_themes',
'sweetAlert'
]);
}]
},
data: {
authenticationRequired: true
}
})

App.js

$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {

console.log(toState.data.authenticationRequired);

if(toState.data.authenticationRequired){
if(!AuthService.isAuthenticated()){
event.preventDefault();
$state.go('login');
}
}


// main search
$rootScope.mainSearchActive = false;
// secondary sidebar
$rootScope.sidebar_secondary = false;
$rootScope.secondarySidebarHiddenLarge = false;
// full header
$rootScope.fullHeaderActive = true;
// accordion mode in Menu
$rootScope.menuAccordionMode = true;

if($($window).width() < 1220 ) {
// hide primary sidebar
$rootScope.primarySidebarActive = false;
$rootScope.hide_content_sidebar = false;
}
if(!toParams.hasOwnProperty('hidePreloader')) {
$rootScope.pageLoading = true;
$rootScope.pageLoaded = false;
}

});

最佳答案

我找到了解决方案,调整 $state.go('login')

$state.transitionTo('login', {}, { reload: true, inherit: true, notify: true});

关于javascript - Angular UI 路由器 : URL is changing but view keeps loading (preloader),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39085614/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com