permissions - AngularJS - 权限指令

标签 permissions angularjs user-permissions directive

我正在尝试写 指令 那个将评估用户权限 .

如果不允许用户查看给定的内容

  • 内容将不会显示(完成,工作正常)
  • 来自权限指令中的 Controller 的请求将不会得到
    被解雇了。

  • 例子:

    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/

    相关文章:

    permissions - Redis 不能写入日志或备份,但我需要备份当前内存中的内容

    java - java.net.SocketPermission 处理 cname 反向查找时是否存在错误

    javascript - Material design : change select action for the whole tab button,不仅用于标签

    connection - 使用标准 TCP IP over SSH 在 mysql 工作台中设置新连接

    c# - 如何获取使用 System.Diagnostics.Process.GetProcess(string) 的权限?

    Java EE HTTP 状态 500 - 权限被拒绝

    macos - 以 root 身份运行 rsync : Operations Not Permitted

    angularjs - 模态窗口有大背景

    javascript - 在 $http 加载的内容上渲染 AngularJS 指令

    ubuntu - 如何为我的 pi 用户添加文件夹的写入权限?