2

アプリのさまざまな部分にアクセスできるユーザーがいます。私が今やっていることは、すべての $routeProvider.when に解決を追加することです

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

そして、すべてのコントローラーで、次のようにhasSiteAccess" " と " "を追加しています。hasEmailAccess

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

私のアプリは多くのモジュールに分割されており、わかりやすいメッセージを表示するためにこれらをすべて利用できるようにしたいと考えています。

この解決オブジェクトをすべてのルートとコントローラーで利用できるようにすることは可能ですか?

ありがとう!

4

1 に答える 1

0

$routeChangeStartイベントを介して各ルートが変更される前に、承認プロバイダーを適用するだけです。

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

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

お役に立てれば

于 2014-02-11T16:45:51.543 に答える