Angular 一次性绑定有时翻译不翻译
Angular Translate not translating sometimes with one-time binding
我正在使用 Angular 1.x,它是 Angular 翻译模块。最近,我将所有翻译绑定从双向转换为一次性。一切正常,直到有一天,然而,我注意到有时如果我开始刷新页面,翻译实际上并没有被翻译。
示例:
{{ ::'MyTranslationKey' | translate }}
90% 的结果是正确的。而在另外10%中,渲染结果是:
MyTranslationKey
这是什么原因,我该如何解决?
编辑:
这不会发生在 ng-if、ng-repeat 或指令中的元素 - 例如当它们在子范围内时。
默认情况下,angular-translate 为没有翻译的键放置一个空字符串。
翻译在 10% 的情况下不起作用的原因是您在页面呈现后收到带有翻译的文件。当您收到翻译文件时,由于一次性数据绑定,翻译指令的新值不适用;
在这种情况下,你可以把所有的内容放在ng-if里面,有数据接收条件,ng-if='loaded'
.
尝试:
<element translate>
{{::'MyTranslationKey'}}
</element>
此外,使用 translate
属性而不是过滤器可以获得更好的性能(根据 Angular 翻译的创建者 Pascal Precht 的说法)。
我正在使用 Angular 1.x,它是 Angular 翻译模块。最近,我将所有翻译绑定从双向转换为一次性。一切正常,直到有一天,然而,我注意到有时如果我开始刷新页面,翻译实际上并没有被翻译。
示例:
{{ ::'MyTranslationKey' | translate }}
90% 的结果是正确的。而在另外10%中,渲染结果是:
MyTranslationKey
这是什么原因,我该如何解决?
编辑:
这不会发生在 ng-if、ng-repeat 或指令中的元素 - 例如当它们在子范围内时。
默认情况下,angular-translate 为没有翻译的键放置一个空字符串。
翻译在 10% 的情况下不起作用的原因是您在页面呈现后收到带有翻译的文件。当您收到翻译文件时,由于一次性数据绑定,翻译指令的新值不适用;
在这种情况下,你可以把所有的内容放在ng-if里面,有数据接收条件,ng-if='loaded'
.
尝试:
<element translate>
{{::'MyTranslationKey'}}
</element>
此外,使用 translate
属性而不是过滤器可以获得更好的性能(根据 Angular 翻译的创建者 Pascal Precht 的说法)。