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()
。但是我如何在那里获得访问级别和角色?呃,这是什么意思?该函数接受访问级别和可选角色,并返回位掩码。无论从何处调用,都必须已经有一个要检查的用户对象。。。。