角度转换属性与过滤器

Fee*_*eco 2 angularjs angular-translate

这两个中哪个更好?

<span translate="key">Key</span>
Run Code Online (Sandbox Code Playgroud)

要么

<span>{{'key' | translate}}</span>
Run Code Online (Sandbox Code Playgroud)

它们既好又可以正常工作,但在第一种情况下,我必须填写元素的内容。

Ped*_*lva 5

使用属性在性能上会更好,特别是如果您打算对ngRepeats内部的元素使用翻译。这是因为过滤器在内部工作的方式。

每次有一个摘要循环时,angularjs都会重新加载所有包含过滤器的表达式。这是因为角度无法确定滤镜是否已更改。这意味着即使翻译的键没有改变,但示波器上的其他值有了改变,Angular仍会仔细检查每一次翻译并将其再次翻译,以得出它们都保持不变的结论。

属性更智能,因为指令的开发者对何时应重新呈现以及应创建什么观察者具有显式控制。

编辑:据我所知,没有必要在第一个用例中填写内容。您可以将其留空。