我们发现 angular-sanitize “清理”北欧字母表的字符并将它们变成 HTML 实体。因此,每次您在 INPUT 中输入ä字符并 $sanitize 您的输入时,您最终都会得到经过净化的字符串,这些字符串将这些字符替换为其他内容(ä ;),这会破坏输入,因为稍后我想显示该字符串或发送它到服务器。似乎用户输入了“ä”而不是“ä”。我们像往常一样在 UTF8 中工作,所以我们不需要这个。
目前我们有一个像这样的解决方案(应用程序是我们的角度应用程序):
app.config(function($provide){
// Prevent $sanitize from converting nordic special characters (ö, ä, å) into HTML entities
// ----------------------------------------------------------------------------------------
// We don't have need for sanitizing umlauts.
$provide.decorator("$sanitize", function($delegate, $log){
return function(text, target){
var result = $delegate(text, target);
result = result
.replace(/ä|ä/g, 'ä')
.replace(/Ä|Ä/g, 'Ä')
.replace(/ö|ö/g, 'ö')
.replace(/Ö|Ö/g, 'Ö')
.replace(/å|å/g, 'å')
.replace(/Å|Å/g, 'Å');
return result;
};
});
});
但是我怀疑通过告诉 $sanitize 一些选项可能有更好的方法来实现这一点。我很欣赏如何以更好的方式做到这一点的建议。