Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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_Angularjs Scope - Fatal编程技术网

Javascript AngularJS-从元素中动态删除指令

Javascript AngularJS-从元素中动态删除指令,javascript,angularjs,angularjs-directive,angularjs-scope,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,从编译和链接的元素中动态添加或删除指令的正确方法是什么 我有一个页面有很多输入(列表很长,所以我想提出一个通用的解决方案)。我想做的是禁用所有的输入,如果特定的标志设置。我可以通过使用jQuery的element.prop('disabled',true)来实现这一点 这种方法的问题是,如果任何输入附加了ng disabled或ng enabled指令,则在对其表达式进行任何修改时,它们将覆盖以前设置的“disabled”属性。但我希望他们不要覆盖我的全球标志 我提出了一个解决方案,为禁用ng或

从编译和链接的元素中动态添加或删除指令的正确方法是什么

我有一个页面有很多输入(列表很长,所以我想提出一个通用的解决方案)。我想做的是禁用所有的输入,如果特定的标志设置。我可以通过使用jQuery的element.prop('disabled',true)来实现这一点

这种方法的问题是,如果任何输入附加了ng disabled或ng enabled指令,则在对其表达式进行任何修改时,它们将覆盖以前设置的“disabled”属性。但我希望他们不要覆盖我的全球标志

我提出了一个解决方案,为禁用ng或启用ng的表达式添加另一群观察者,但这似乎不是最好的方法


我想做的是删除附加到元素的大部分指令,并自己设置适当的属性。但是,如果我重新编译并重新链接元素,然后在文档中替换它,那么我将得到内存泄漏,因为旧元素将从DOM文档树中解除连接,并保留在内存中。我也不能破坏元素的作用域,因为这些元素基本上使用整个页面的主作用域

<div ng-show="someBoolean" >Some text or nested element</div>
某些文本或嵌套元素
或者,您可以附加一个解析为布尔值的函数,而不是“someBoolean”。要设置布尔值,可以在输入中附加一个ng单击,以更新模型/布尔值

<button type="button" ng-click="setBoolean()">Some text or nested element </button>
某些文本或嵌套元素

由于angulars双向数据绑定,ng show将在下一个摘要周期完成后更新

您是否尝试过您的问题对我来说不是很清楚,但是如果您尝试的只是基于标志禁用DOM节点,那么为什么需要删除它们呢。我也不清楚“全球标志”在你们的上下文中是什么意思。我有点搞不清楚你们想对输入做什么。如果他们有这个,你也想要一些可以超越ng disabled的东西?不,ng disabled=“true”很好。但ng disabled=“false”将删除禁用的属性,我希望覆盖该属性。