根据API文档,伪指令的replace属性已弃用,因此将来,所有伪指令的行为都将使用当前默认值replace: false。
replace
replace: false
这消除了开发人员替换element指令的element的能力,而没有明显替代此功能的能力。
有关如何使用元素指令和不使用元素指令的示例,请参见此示例replace: true。
replace: true
为什么不推荐使用此有用的属性而不进行替换?
replace在下一个主要的Angular版本中,将删除用于定义替换其所在元素的指令的标志。此功能具有难以理解的语义(例如,如何合并属性),并且与解决方案相比会导致更多问题。另外,对于WebComponents,在DOM中具有自定义元素是很正常的。
在我看来,它是复杂性与保持支持的优势的结合。
开发人员之所以使用它,显然是一个原因,因为他们更喜欢注入语义正确的标记,从而取代了自定义指令标记。
阅读该链接下方的注释,显然许多人希望它保留下来。