Angular Translate 有时无法通过一次性绑定进行翻译

Yul*_*ian 7 javascript angularjs angular-translate one-time-binding

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

例子:

{{ ::'MyTranslationKey' | translate }}
Run Code Online (Sandbox Code Playgroud)

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

MyTranslationKey
Run Code Online (Sandbox Code Playgroud)

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

编辑:

对于 ng-if、ng-repeat 或指令内部的元素,例如当它们位于子作用域内时,不会发生这种情况。

小智 5

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