gpt4 book ai didi

permissions - AngularJS - 权限指令

转载 作者:行者123 更新时间:2023-12-04 01:01:48 33 4
gpt4 key购买 nike

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

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

  • 内容将不会显示(完成,工作正常)
  • 来自权限指令中的 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/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com