AngularJS父div指令等待子div堆栈指令完成
我有一部分html是这样的AngularJS父div指令等待子div堆栈指令完成,angularjs,Angularjs,我有一部分html是这样的 <div my-custom-security-directive> <button ng-if={{some constraints}} ng-click={{logic}}>cancel</button> <button ng-disabled={{some logic}} ng-click={{some logic}}>submit<button> </div> 我最近/今天确实把
<div my-custom-security-directive>
<button ng-if={{some constraints}} ng-click={{logic}}>cancel</button>
<button ng-disabled={{some logic}} ng-click={{some logic}}>submit<button>
</div>
我最近/今天确实把这个优先级放在了指令上,但我认为它在这个特定场景中没有任何作用。即使
我的自定义安全指令
能够将CSS类附加到按钮并隐藏或显示它,按钮也有自己的ng if
条件。这意味着按钮可能会被销毁并在以后重新创建,并且不再具有CSS类。如果该按钮使用ng show
而不是ng If
,您可能会有更多的控制权,因为该按钮将被隐藏但仍保留在DOM中
但是我认为我的自定义安全指令
可能需要更多的控制。您可以使用transclusion,以便my custom security directive
充当应基于userhaspmission
销毁或创建的每组元素的容器
指令:
.directive('myCustomSecurityDirective', function () {
return {
transclude: true,
link: function (scope) {
scope.userHasPermission = true;
},
template: '<div ng-if="userHasPermission" ng-transclude></div>'
}
});
.directive('myCustomSecurityDirective',函数(){
返回{
是的,
链接:功能(范围){
scope.userHasPermission=true;
},
模板:“”
}
});
HTML:
取消
提交
我的自定义安全指令是否使用转换?显示更多代码可能会有所帮助。无转换谢谢。我选择反对转换,只是因为这个指令在各地都被重复使用,而且它并不总是“包含”这个有问题的div。你的答案是正确的,我得出结论,我在我可以做的事情上处于一个艰难的境地:转换/自定义或一次性版本的指令。最后,为了使指令更简单,我将其保留下来,并向问题div添加了必要的类,因为如果它不满足要求,它将被ng删除。我真的不喜欢我的解决方案,但我认为这是最简单的应用程序。
.directive('myCustomSecurityDirective', function () {
return {
transclude: true,
link: function (scope) {
scope.userHasPermission = true;
},
template: '<div ng-if="userHasPermission" ng-transclude></div>'
}
});
<div my-custom-security-directive>
<button ng-if="...">cancel</button>
<button ng-disabled="...">submit</button>
</div>