angular $ translate.instant返回对象而不是字符串

时间:2017-04-19 08:06:41

标签: angularjs internationalization angular-translate

我正在使用"angular-translate": "^2.15.1"$translateProvider.useSanitizeValueStrategy('sce')

在我的控制器中,我需要将已翻译的字符串值传递给$ http服务。

但是下面的代码会返回TrustedValueHolderType个对象而不是字符串。

defaultMessage = translate.instant('welcome-message.default.message');

enter image description here

裸露的最小笨蛋https://plnkr.co/edit/ZPtixjNub9kIExiuGIkp?p=preview 打开控制台(全部清除)。然后单击DE或EN按钮并查看日志

1 个答案:

答案 0 :(得分:2)

是的,正如评论中所提到的,decodeURIComponent可能会解决它。但这首先是造成这种情况的原因:

$translateProvider.useSanitizeValueStrategy('sce')

这会对$translate全局输出进行编码..这就是为什么你可以使用decodeURIComponent来解决它。

也许你可以使用不同的策略。 angular-translate guide似乎建议采用escape策略。

这是一个与escape策略配合使用的forked plunker,无需使用decodeURIComponent