我们发现角度消毒“消毒”了北欧字母的字符,并使它们成为HTML实体。因此,每当您在INPUT中输入ä字符并对您的输入进行$清理时,您最终会使用已清理的字符串,将这些字符替换为其他字符(& auml; ),这会破坏输入,因为稍后我会显示该字符串或将其发送到服务器。并且似乎用户输入“& auml”而不是“ä”。我们像往常一样在UTF8工作,所以我们不需要这个。
目前我们有一个像这样的解决方案(app是我们的角度应用程序):
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一些选项可能有更好的方法来达到这个目的。我很感激建议如何做得更好。