Angularjs 用函数替换指令

Angularjs 用函数替换指令,angularjs,node.js,Angularjs,Node.js,我是一个新手,一直在学习示例代码。我遇到了这个检查允许访问级别的指令。我需要将其替换为可以调用的函数,如: router.get('/', functioname(user.role), musicians.findAll); i、 e仅当此函数返回true else false时,才允许访问此路径 我不需要更新任何CSS,但需要根据函数返回的信息限制路径 如何在此处获取访问级别和角色 然而,我有这个指令,我需要用一个我可以同样使用的函数来替换它 angular.module('an

我是一个新手,一直在学习示例代码。我遇到了这个检查允许访问级别的指令。我需要将其替换为可以调用的函数,如:

router.get('/', functioname(user.role), musicians.findAll);
i、 e仅当此函数返回true else false时,才允许访问此路径

我不需要更新任何CSS,但需要根据函数返回的信息限制路径

如何在此处获取访问级别和角色

然而,我有这个指令,我需要用一个我可以同样使用的函数来替换它

     angular.module('angular-client-side-auth')
    .directive('accessLevel', ['Auth', function(Auth) {
        return {
            restrict: 'A',
            link: function($scope, element, attrs) {
                var prevDisp = element.css('display')
                    , userRole
                    , accessLevel;

                $scope.user = Auth.user;
                $scope.$watch('user', function(user) {
                    if(user.role)
                        userRole = user.role;
                    updateCSS();
                }, true);

                attrs.$observe('accessLevel', function(al) {
                    if(al) accessLevel = $scope.$eval(al);
                    updateCSS();
                });

                function updateCSS() {
                    if(userRole && accessLevel) {
                        if(!Auth.authorize(accessLevel, userRole))
                            element.css('display', 'none');
                        else
                            element.css('display', prevDisp);
                    }
                }
            }
        };
    }])
它正在使用此服务:

angular.module('angular-client-side-auth')
.factory('Auth', function($http, $cookieStore){

    var accessLevels = routingConfig.accessLevels
        , userRoles = routingConfig.userRoles
        , currentUser = $cookieStore.get('user') || { username: '', role: userRoles.public };

    $cookieStore.remove('user');

    function changeUser(user) {
        angular.extend(currentUser, user);
    }

    return {
        authorize: function(accessLevel, role) {
            if(role === undefined) {
                role = currentUser.role;
            }

            return accessLevel.bitMask & role.bitMask;
        } }

我可以得到一些帮助吗?

您的工厂中已经有了可以调用的函数,
Auth.authorize()
。但是我如何在那里获得访问级别和角色?呃,这是什么意思?该函数接受访问级别和可选角色,并返回位掩码。无论从何处调用此函数,您必须已经有了要检查的用户对象……您的工厂中已经有了可以调用的函数,
Auth.authorize()
。但是我如何在那里获得访问级别和角色?呃,这是什么意思?该函数接受访问级别和可选角色,并返回位掩码。无论从何处调用,都必须已经有一个要检查的用户对象。。。。