【发布时间】:2013-02-28 01:37:12
【问题描述】:
我正在尝试编写指令,将评估用户权限。
如果不允许用户查看给定的内容
内容不会显示(完成,工作正常)
来自权限指令内的控制器的请求将无法获得 被解雇了。
例子:
控制器:
function MyController ($scope){
// performing imediately server request, witch is allowed only for admin
// therefore i will get error when non admin user access this page
}
权限指令:
return {
priority: 1000,
restrict: 'E',
link: (scope, element, attrs) => {
var permission = attrs.permission;
if (/*evaluating permission*/) {
// user has permission, no work for me
return;
}
element.remove();
}
};
大家一起:
<permission permission="isAdmin">
<div ng-controller="MyController">
</div>
</permission>
这个版本正在从 DOM 中删除元素,但 MyController 中的请求仍然被执行。当然,我可以在 MyController 中检查权限,但我不想这样做。
感谢您的帮助。
【问题讨论】:
-
请告诉我们您是如何处理您的 $http 请求的。
-
或者做一个 jsfiddle。我想我知道你的问题是什么,但希望看到更多的代码来确定。
-
2 Ray:这只是一个标准的 $http.post
$http.post(address, data).success(succCall).error( errCall);jsfiddle 我不明白这有什么关系。我发现,在编译中删除元素是可行的,但我不确定它是否是好的解决方案。
标签: permissions angularjs user-permissions directive