实施 Angular UI 路由器惰性解析

Implementing Angular UI router lazy resolves

我使用 Angular 和 UI 路由器,我需要我的 parent 状态之一是懒惰的。

这样做的原因是我有一个名为 authenticated 的状态,它由 child 状态的整个层次结构继承。我需要延迟解析名为 isAuthenticated 的解析(即每次进入 authenticated 状态的 child)。

这是我的 parent authenticated 状态:

    .state('authenticated', {
        abstract: true,
        parent: 'root',
        views: {
            'header@': {
                controller: 'NavbarCtrl',
                templateUrl: 'app/navbar/views/navbar.view.html'
            }
        },
        resolve: {
            currentMember: ['domainService', function (domainService) {
                return domainService.currentMember();
            }],
            isAuthenticated: ['$rootScope', '$q', '$cookies', function ($rootScope, $q, $cookies) {
                return ($rootScope.globals.authenticated && $cookies.globalsAuthenticated) || $q.reject({unAuthorized: true});
            }]
        }
    })

我想这样做,以便我可以轻松地将未经身份验证的用户重定向到登录页面。

如何使用 UI 路由器 (0.2.15) 的当前实现进行惰性解析?

P.S。 我看过 oc lazy load,但似乎旨在加载整个模块或文件...

你可以使用 stateChangeStart 它会帮助你做你正在寻找的事情,检查这个 link出来

http://brewhouse.io/blog/2014/12/09/authentication-made-simple-in-single-page-angularjs-applications.html