我有一个奇怪的或可能有意的角度翻译行为 我们的价值战略是
$translateProvider.useSanitizeValueStrategy('sanitize');
我们在应用程序中主要使用翻译过滤器,但是当谈到特殊字符时,我们会得到例如Ü berschrift 之类的Überschrift。
如果我使用它的指令它
如果我使用过滤器,这仅在清理策略设置为“转义”时才有效。
是否有其他解决方案,而不是将所有翻译过滤器重写为指令?
这是我的plnkr http://plnkr.co/edit/QIMVQcyH5APeYxNnS82v
供您参考, 我不能简单地使用“转义”策略,因为我们也使用角度转换变量,这些变量有时甚至包含html标签。
谢谢!
答案 0 :(得分:13)
使用sanitizeParameters
代替sanitize
。这是固定的plnkr:http://plnkr.co/edit/qicVqPXn3qo6hMNa1fY2?p=preview
(编辑:07/10/2016 ):两种消毒策略之间存在显着差异。 sanitizeParameters
清除插值参数而不是翻译输出。这意味着它不允许更改这些参数,但翻译的内容仍然容易受到攻击,因为它没有被清理。
sanitize
和UTF-8字符的问题是一个已知问题,我相信它正在进行中。