1
如果我把通知設置爲true,不呈現login.html,這是一個空白頁面。如果我把假的,但回報使得我在控制檯中的幾個誤區:Auth上的角度ui路由器的問題
RangeError: Maximum call stack size exceeded
at $.resolve (angular-ui-router.min.js:1)
at b (angular-ui-router.min.js:1)
at Object.x.transitionTo (angular-ui-router.min.js:1)
at Object.x.go (angular-ui-router.min.js:1)
at app.js:317
at p.$broadcast (angular.min.js:3)
at Object.x.transitionTo (angular-ui-router.min.js:1)
at Object.x.go (angular-ui-router.min.js:1)
at app.js:317
at p.$broadcast (angular.min.js:3)
我的代碼路由器:
$rootScope.$on('$stateChangeStart',
function(event, toState, toParams, fromState, fromParams) {
var shouldLogin = !$window.sessionStorage.token && !AuthenticationService.isLogged;
$rootScope.Authenticated = shouldLogin;
//redirect only if both isAuthenticated is false and no token is set
// if (!AuthenticationService.isLogged && !$window.sessionStorage.token) {
// $state.go('login');
// }
//console.log($rootScope.Authenticated);
if(shouldLogin) {
$state.go('login', {}, {notify: false, location: false});
event.preventDefault();
return;
}
});
的最大調用堆棧,當你有無限的回調通常發生。嘗試調試你的代碼思考這方面。 – Rodmentou
不要在這裏使用'$ state.go'。導致另一個'$ stateChangeStart',這導致這個函數被再次評估,這導致另一個'$ state.go'等。 – Claies
我使用$ location解決。 –