Dem*_*Shi 5 javascript angularjs angularjs-directive angularjs-scope
从编译和链接元素动态添加或删除指令的正确方法是什么?
我有一个页面,有很多输入(列表很长,所以我想提出一个通用的解决方案).我想要做的是如果设置了特定标志,则禁用所有输入.我可以通过使用jQuery的element.prop('disabled',true)来做到这一点.
这种方法的问题在于,如果任何输入都附加了ng-disabled或ng-enabled指令,那么在任何表达式修改时,它们将覆盖先前设置的'disabled'属性.但我希望他们不要覆盖我的全球旗帜.
我想出了一个解决方案,为ng-disabled或ng-enabled表达添加另一组观察者,但它似乎不是最好的方法.
我想要做的是删除附加到元素的大多数指令并自己设置适当的属性.但是如果我重新编译并重新链接元素,然后在文档中替换它,那么我将得到内存泄漏,因为旧元素将从DOM文档树中删除,并将保留在内存中.我也无法破坏元素的范围,因为这些元素基本上使用整个页面的主要范围.
小智 0
你可以尝试类似的东西
<div ng-show="someBoolean" >Some text or nested element</div>
Run Code Online (Sandbox Code Playgroud)
或者您可以附加一个解析为布尔值的函数来代替“someBoolean”。要设置布尔值,您可以将 ng-click 附加到您的输入,以更新您的模型/布尔值
<button type="button" ng-click="setBoolean()">Some text or nested element </button>
Run Code Online (Sandbox Code Playgroud)
由于角度双向数据绑定,ng-show 将在下一个摘要周期完成时更新
| 归档时间: |
|
| 查看次数: |
2664 次 |
| 最近记录: |