javascript – 使用escapeParameters清理插值参数时的angular-translate问题

当使用angular-translate时,我遇到了一个奇怪的问题(没有显示翻译),参数插值作为日期对象.

但首先要做的事情是:here是吸血鬼.

.

在翻译提供程序中使用清理策略’escapeParameters’,

为什么用这样的json格式化:

$scope.title = { day: 'tomorrow', today: new Date() };

我的翻译结果总是{},使用签约表格

{{'VARIABLE_REPLACEMENT' | translate : title}}

<translate="VARIABLE_REPLACEMENT" translate-values="{ day: 'tomorrow', today: title.today }">

正如您所看到的,使用angular-translate的其他方法似乎工作得很好.这是某种错误吗?或者我做错了什么?

最佳答案 看起来像一个已知的bug.在
https://angular-translate.github.io/docs/#/guide/19_security他们说

Currently there is an issue with the sanitize mode, it will double
encode UTF-8 characters or special characters. Recommendation: use the
‘escape’ [instead of ‘escapeParameters’] strategy, until this is
resolved.

所以,我想如果你想在第一次和第三次测试中使用这些变体,你可能必须坚持使用“逃避”策略.或者,将日期字符串格式化为没有导致问题的任何字符.

当我编辑你的plunker使用’escape’时,你的所有四个测试都运行良好.

点赞