kle*_*sta 10 permissions directive user-permissions angularjs
我试图写指令是将评估用户权限.
如果不允许用户查看给定内容
内容不会显示(完成,工作正常)
来自权限指令内的控制器的请求不会被触发.
例:
控制器:
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
}
Run Code Online (Sandbox Code Playgroud)
权限指令:
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();
}
};
Run Code Online (Sandbox Code Playgroud)
全部一起:
<permission permission="isAdmin">
<div ng-controller="MyController">
</div>
</permission>
Run Code Online (Sandbox Code Playgroud)
此版本正在从DOM中删除元素,但MyController中的请求仍然会被执行.当然,我可以在MyController中检查权限,但我不想这样做.
谢谢你的帮助.
我尝试了另一种方法,并将元素的删除放入编译函数中。根据日志,它是在控制器之前执行的,所以它是正确的位置。无论如何,请求仍然被解雇。所以我尝试盲拍删除元素子元素(我知道,这没有意义,删除元素应该足够并且也应该删除子元素)。
但它成功了!
compile: function(element) {
var children = element.children();
children.remove(); element.remove();
}
它正在工作,但我不确定它有多好(例如未来版本 Ang。)
| 归档时间: |
|
| 查看次数: |
7949 次 |
| 最近记录: |