我有一个可以访问应用程序不同部分的用户。我现在正在做的是向每个$ routeProvider添加一个解析。

resolve : {
            adminUser: securityAuthorizationProvider.requireAuthenticatedUser,
            hasSiteAccess: securityAuthorizationProvider.requireSiteAccess,
            hasEmailAccess: securityAuthorizationProvider.requireEmailAccess
        }


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

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


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

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

谢谢!

最佳答案

只需在通过$routeChangeStart事件更改每个路由之前应用授权提供者:

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

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


希望这可以帮助

09-17 19:23