在AngularJS指令上使用replace = true有什么缺点吗?

时间:2014-02-27 16:18:41

标签: javascript angularjs

习惯AngularJS并且已经构建了很多指令。

通常情况下,指令是Element,我一直将replace选项设置为true

我想知道,这样做对任何事都有负面影响吗?我将它设置为true,这样它只会使源html保持整洁,并尽可能接近html规格。

但是,如果将此设置为true可能会产生一些负面影响,我会放弃规格......

那么 - replace:true有优点/缺点吗?

2 个答案:

答案 0 :(得分:1)

没有负面影响,但有一个特定用例可将replace设置为true

如果您想要使用您自己的标记替换元素中可能包含的任何标记,请将其设置为true

如果您希望与指令中已有的任何标记保持一致,请将其设置为false

答案 1 :(得分:1)

使用replace: true时要记住的一件事是,您的模板只能有一个根节点。因此,如果您希望在其根级别拥有包含多个兄弟姐妹的模板,请使用replace: false,您的模板将插入到原始元素的内部HTML中,而不是完全替换它。

强制执行此规则是因为angular尝试将原始元素的所有属性传输到模板的根节点。

考虑到这一点,我认为这是一种风格选择:对于您的应用来说,在语义上最有意义的是什么?