角度翻译属性与过滤器

时间:2015-11-02 21:25:41

标签: angularjs angular-translate

这两个中哪一个更好?

<span translate="key">Key</span>

<span>{{'key' | translate}}</span>

它们都很好并且工作正常但在第一种情况下我必须填写元素的内容。

1 个答案:

答案 0 :(得分:4)

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

每次有摘要周期时,angularjs会重新加载包含过滤器的所有表达式。这是因为角度可能无法知道过滤器是否已经改变。这意味着,即使翻译的关键字没有改变,但是范围上的其他一些值也是如此,angular会查看每个翻译并再次翻译它,只是为了得出它们都保持不变的结论。

属性更加智能,因为指令的开发人员可以明确控制何时应该重新渲染以及应该创建哪个观察者。

编辑:据我所知,没有必要填写第一个用例中的内容。你可以把它留空。