2

我刚刚更新到 angular-translate 的 v2.4:http: //angular-translate.github.io ,发现 translate-cloak 不起作用。它曾经在 v2.2 中工作。'translate-cloak' 类现在永远不会从具有该 translate-cloak属性的标签中删除。

我有一个 plunker 来证明这个问题:

http://plnkr.co/edit/NOxGMEqTy4FsZBSIK0zl

如果它有效,它应该显示两行。第二行在具有 translate-cloak属性的 div 中。

您可以将 index.html 的第 9 行更改为下面的行(从 angular-translate 的 v2.4 更改为 v2.2)以查看它在 v2.2 中的工作原理。

<script src="angular-translate.v2.2.js"></script>

我错过了什么吗?

4

2 回答 2

3

提交 98fe64 是对https://github.com/angular-translate/angular-translate/issues/658的修复(并非总是触发事件)。实际上,它应该比以前更频繁地被解雇,而不是比以前更少。

查看您的示例,我可以看到该语言似乎在解析指令之前就已加载,因此带有控制台输出的侦听器。

console.log('$translateChangeEnd');

这意味着该问题与更改 ~success -> ~end 无关,但与资源加载、xhr 响应和组件解析和编译的非确定性(甚至在此特定示例中)顺序有关。

我添加了一个

$rootScope.$emit('$translateChangeEnd', { language: translation.key });

但我们必须检查这是否涵盖了所有内容。

见分叉http://plnkr.co/edit/kawPEyjPpPRtJvJzqLeD?p=preview

请参阅我的出色补丁https://github.com/angular-translate/angular-translate/commit/e5ef6ab609d6a58defd371ca8239e8054cab718e

(免责声明:我来自 angular-translate 核心团队。)

于 2014-09-29T07:47:19.503 回答
0

https://github.com/angular-translate/angular-translate/commit/98fe649a241b79c245fb32d838b84f0fac319f5a

我认为这是由上述提交引起的错误。

实际上,您将 angular-translate.v2.4.js 第 924 行中的 '$translateChangeEnd' 替换为 '$translateLoadingSuccess',就可以了。

于 2014-09-29T06:44:36.423 回答