7

我正在使用 Angular 1.x,它是 Angular Translate 模块。最近,我将所有翻译绑定从双向切换为一次性。一切都很好,但是直到有一天,我注意到有时如果我开始刷新页面,翻译实际上并没有被翻译。

例子:

{{ ::'MyTranslationKey' | translate }}

在 90% 的情况下,结果是正确的。然而,在另外 10% 中,呈现的结果是:

MyTranslationKey

这是什么原因,我该如何解决?

编辑:

这不会发生在 ng-if、ng-repeat 或指令内的元素上——例如当它们在子作用域内时。

4

2 回答 2

5

默认情况下,angular-translate 为键放置一个空字符串而不进行翻译。翻译在 10% 的情况下不起作用的原因是您在页面呈现后收到了带有翻译的文件。当您收到翻译文件时,由于一次数据绑定,翻译指令的新值不适用;在这种情况下,您可以将所有内容放入带有数据接收条件的 ng-if 中,ng-if='loaded'.

于 2017-03-31T08:57:00.623 回答
3

尝试:

<element translate>
    {{::'MyTranslationKey'}}
</element>

此外,使用translate属性而不是过滤器可以获得更好的性能(根据 Angular Translate 的创建者 Pascal Precht 的说法)。

于 2017-03-31T09:09:40.420 回答