Javascript AngularJS-自删除/插入指令
我试图创建一个指令,根据用户的权限控制DOM中的某些元素。在internet上查找时,我找到了元素的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) !==
.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