0

angularを使用するアプリがあります。app.config でルートを設定する必要がありますが、アプリを使用するすべての人がすべてのページを表示できるわけではないため、ルートを承認したいと考えています。

そのため、その人がルートを見ることができるかどうかをアプリに伝えるブール値を与えるファクトリを作成しようとしましたが、ファクトリを構成に挿入できないことを学びました。

そのため、構成に挿入できるプロバイダーを作成しました。

(function () {
    'use strict';

    angular.module('services')
    .factory('Auth', ['$http', function AuthFactory($http) {
        return {
            LinkAuth: function (Name) {
                return $http({ method: 'GET', url: '/Dashboard/AuthorizeNavItem', data: { Name: Name } });
            }
        }
    }]);


    angular.module('services')
    .provider('AuthProvider', ['Auth', function (Auth) {
        var allowed = false;

        this.$get = function (Name) {
            Auth.LinkAuth(Name).success(function (data) {
                allowed = data.Authorized;
            });

            return allowed;
        }

    }]);
})();

私のapp.config:

(function () {
    'use strict';

    angular.module('app.it', [])
    .config(['$stateProvider', 'msNavigationServiceProvider', 'AuthProvider', function ($stateProvider, msNavigationServiceProvider, AuthProvider) {

        $stateProvider
        .state('app.it', {
            abstract: true,
            url: '/information-technology',
        })
        .state('app.it.users', {
            url: '/users',
            views: {
                'content@app': {
                    templateUrl: '/IT/Users',
                    controller: 'ITUserController as vm'
                }
            }
        });

        /*
            We need to get a bool to say if a user is part of a group that can see this page.
        */
        var allowed = true;//I want the provider $get method to return that bool here

        if (allowed)
        {
           //This builds the navigation bar
            msNavigationServiceProvider.saveItem('app.authroute', {
                title: 'Authorized Route',
                icon: 'icon-monitor',
                weight: 2
            });

            //This builds the navigation bar
            msNavigationServiceProvider.saveItem('app.authroute.route', {
                title: 'Route',
                state: 'app.authroute.route'
            });
        }


    }]);

})();

その AuthProvider $get にアクセスして bool を config の変数に保存するにはどうすればよいですか?

4

0 に答える 0