我正在尝试写 指令 那个将评估用户权限 .
如果不允许用户查看给定的内容
被解雇了。
例子:
Controller :
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 中检查权限,但我不想这样做。
感谢您的帮助。
最佳答案
您的问题是 Controller 将始终在链接函数执行之前被调用。见 this fiddle .
function MyCtrl($scope) {
console.log('in controller');
}
myApp.directive('permission', function() {
return {
restrict: 'E',
link: function(scope, element, attrs) {
console.log('in link');
日志显示:
in controller
in link
关于permissions - AngularJS - 权限指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15362946/