使用escapeParameters清理插入参数时出现角度转换问题

时间:2016-08-18 11:19:45

标签: javascript angularjs json sanitization 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的其他方法似乎工作得很好。这是某种错误吗?或者我做错了什么?

2 个答案:

答案 0 :(得分:1)

看起来像一个已知的错误。他们在https://angular-translate.github.io/docs/#/guide/19_security

  

目前清洁模式存在问题,它将加倍   编码UTF-8字符或特殊字符。建议:使用   &#39;逃&#39; [而不是&#39; escapeParameters&#39;]策略,直到这样   解决。

所以,我想如果您想在第一次和第三次测试中使用这些变体,您可能必须坚持使用&#39; escape&#39;战略。或者,将日期字符串格式化为没有导致问题的任何字符。

当我编辑您的plunker以使用&#39; escape&#39;时,您的所有四项测试都运行良好。

答案 1 :(得分:0)

对于每个人都在想,我在angular-translate的github存储库上打开了一个问题:这个问题将在2.11.2(当前版本的下一个版本)中修复。 有关此问题的更多信息here