习惯AngularJS并且已经构建了很多指令。
通常情况下,指令是Element
,我一直将replace
选项设置为true
我想知道,这样做对任何事都有负面影响吗?我将它设置为true
,这样它只会使源html保持整洁,并尽可能接近html
规格。
但是,如果将此设置为true可能会产生一些负面影响,我会放弃规格......
那么 - replace:true
有优点/缺点吗?
答案 0 :(得分:1)
没有负面影响,但有一个特定用例可将replace
设置为true
。
如果您想要使用您自己的标记替换元素中可能包含的任何标记,请将其设置为true
。
如果您希望与指令中已有的任何标记保持一致,请将其设置为false
。
答案 1 :(得分:1)
使用replace: true
时要记住的一件事是,您的模板只能有一个根节点。因此,如果您希望在其根级别拥有包含多个兄弟姐妹的模板,请使用replace: false
,您的模板将插入到原始元素的内部HTML中,而不是完全替换它。
强制执行此规则是因为angular尝试将原始元素的所有属性传输到模板的根节点。
考虑到这一点,我认为这是一种风格选择:对于您的应用来说,在语义上最有意义的是什么?