Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS-自删除/插入指令_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript AngularJS-自删除/插入指令

Javascript AngularJS-自删除/插入指令,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我试图创建一个指令,根据用户的权限控制DOM中的某些元素。在internet上查找时,我找到了元素的.remove()函数。它工作得很好 但是,如果权限更改,我需要再次显示DOM元素。调用.remove()后如何执行此操作 这是我的密码: ddo.link = function(scope, el, attrs){ // Validate the permission if( currentUserService.isAllowed(scope.validatePermission) !==

我试图创建一个指令,根据用户的权限控制DOM中的某些元素。在internet上查找时,我找到了元素的
.remove()
函数。它工作得很好

但是,如果权限更改,我需要再次显示DOM元素。调用
.remove()
后如何执行此操作

这是我的密码:

ddo.link = function(scope, el, attrs){

// Validate the permission
if( currentUserService.isAllowed(scope.validatePermission) !== true) {
    el.remove();
}

// Listener for changes
$rootScope.$on("eventName", function(event, param){

    // Validate the permission
    if( currentUserService.isAllowed(scope.validatePermission) !== true) {
        el.remove();
    } else {
        // SHOW THE ELEMENT AGAIN!
    }

});

};
或者,是否有其他方法可以删除反HTML并再次插入?因为使用CSS,用户可以通过开发者控制台禁用

提前谢谢

改用
.remove()
尝试使用
.addClass()
.removeClass()
添加一个显示为“无”的类,必要时将其删除。 方法
.remove()
删除显示元素,因此无法再次显示该元素

另一种替代方法是使用
.css()
,但与其他方法相比,您的处理速度较慢

请改用
.remove()
尝试使用
.addClass()
.removeClass()
添加带有
显示:none
的类,并在必要时删除该类。 方法
.remove()
删除显示元素,因此无法再次显示该元素



另一种选择是使用
.css()
,但是您的处理速度比其他人慢

如果已经这样做了,为什么不直接使用ng呢?如果这是一个交易破坏者,我会看看ng If的代码,看看它是如何做到的。当前用户经常更改的用例是什么?似乎只要在用户更改时重新加载currentState就足够了。我会非常犹豫是否要在rootScope中添加一个侦听器。Mike Feltman感谢我们的关注!我需要这种更新的可能性,因为权限是在链接阶段之后加载的,所以我需要更新指令的显示。我使用指令将代码集中在一个地方,而不是所有控制器中……如果已经这样做了,为什么不使用ng呢?如果这是一个交易破坏者,我会看看ng If的代码,看看它是如何做到的。当前用户经常更改的用例是什么?似乎只要在用户更改时重新加载currentState就足够了。我会非常犹豫是否要在rootScope中添加一个侦听器。Mike Feltman感谢我们的关注!我需要这种更新的可能性,因为权限是在链接阶段之后加载的,所以我需要更新指令的显示。我使用指令将代码集中在一个地方,而不是所有控制器中…但是,考虑到上面的Mike comment,使用ng if是一个更好的选择感谢您的注意Pablo!但如果我需要在所有控制器中插入代码,则使用ng。。。我说的对吗?有没有其他方法可以删除反HTML并再次插入?因为有了CSS,用户可以通过开发者控制台禁用它……你可以把它放在$rootScope中。所以你不是把它放在所有的控制器中,你需要把它放在一个指令中,但是我认为这很难。用户可以通过控制台进行所有更改,而不仅仅是htmlBut,比如上面的Mike评论,使用ng if是更好的选择感谢您的关注Pablo!但如果我需要在所有控制器中插入代码,则使用ng。。。我说的对吗?有没有其他方法可以删除反HTML并再次插入?因为有了CSS,用户可以通过开发者控制台禁用它……你可以把它放在$rootScope中。所以你不是把它放在所有的控制器中,你需要把它放在一个指令中,但是我认为这很难。用户可以通过控制台进行所有更改,而不仅仅是html