【发布时间】:2014-08-03 09:39:25
【问题描述】:
根据the API docs,指令的replace 属性已被弃用,因此在未来,所有指令都将使用当前默认的replace: false。
这消除了开发人员替换元素指令的元素的能力,而没有明显替换此功能。
请参阅this plunk,了解元素指令在使用和不使用replace: true 的情况下如何工作的示例。
为什么这个有用的属性被弃用而没有替代品?
【问题讨论】:
-
可能是为了性能和/或简单性:如果您不替换它,它会保留元素的属性。我注意到 angular 确实定义了像“ng-1402613834652”这样的道具(不是属性,被欺骗了)。如果 Angular 的其他部分可以获取元素的引用并且不必担心它会过时,那么在运行数据/视图更新时执行的交叉检查就会少得多。
-
只是想补充一点,在链接函数中通过 $('selector').replaceWith(content) 替换是一个非常简单的解决方案,尽管不如“replace: true”好。它还假设jquery,不确定angular的jqLite是否支持replaceWith。
-
当我想通过指令动态地将 ng-click 添加到现有元素时,我实际上不得不使用它。 stackoverflow.com/questions/22116470/…
标签: javascript angularjs angularjs-directive