javascript - Auth 时有关 Angular ui-router 的问题

标签 javascript angularjs angular-ui-router

如果我把notify设置为true,则不会渲染login.html,是一个空白页面。如果我设置为 false,但返回会在控制台中呈现几个错误:

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;
        }

    });

最佳答案

我想说,你可以按照自己的方式行事,只需...添加一行以在已经登录时不重定向:

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

    var alreadyGoingToLogin = toState.name === "login";
    if(alreadyGoingToLogin) {
      return
    }
    ...

通过工作示例检查这些内容:

关于javascript - Auth 时有关 Angular ui-router 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33528641/

相关文章:

javascript - 无法通过 javascript 向 php 提交表单

javascript - JS文件已加载但未执行

javascript - : Ember. js, Canjs, Angular.js 哪个JavaScript框架更适合新手?

javascript - Angular ui-router 中使用 href 的路由问题

javascript - 允许顶级范围访问 ui-view 子范围

javascript - 如何恢复以前的 Angular Controller 状态

javascript - Python:使用 urllib2 处理 Javascript?

javascript - 为什么我的动态确认框只能工作一次?

javascript - 反转Y轴D3

javascript - 将对象传递给动态创建的指令