是否可以定义一个解析对象并使其在所有路由中可用?

时间:2013-07-03 08:56:04

标签: javascript angularjs angularjs-routing

我有一个用户可以访问该应用的不同部分。我现在正在做的是为每个$ routeProvider.when

添加一个解决方案
resolve : {
            adminUser: securityAuthorizationProvider.requireAuthenticatedUser,
            hasSiteAccess: securityAuthorizationProvider.requireSiteAccess,
            hasEmailAccess: securityAuthorizationProvider.requireEmailAccess
        }

在每个控制器中,我都添加了“hasSiteAccess”和“hasEmailAccess”,如下所示:

.controller('setup', ['$scope','hasSiteAccess','hasEmailAccess', function ($scope,  hasSiteAccess, hasEmailAccess) {

我的应用程序分为许多模块,我想让它们全部显示,以显示友好的消息。

是否可以在所有路径和控制器中使用此解析对象?

谢谢!

1 个答案:

答案 0 :(得分:0)

只需在通过$routeChangeStart事件更改每次路线之前应用授权提供商:

.run(['$rootScope', 'securityAuthorization',
    function($rootScope, securityAuthorization) {

        $rootScope.$on('$routeChangeStart', function(next, current) {
            securityAuthorization.requireAuthenticatedUser();
            securityAuthorization.requireSiteAccess();
            securityAuthorization.requireEmailAccess();
        });
    }
])

希望这有帮助