Angularjs 如何从angular中解码通过$sanitize方法的字符串中的重音字符
使用from ngSanitize,像ä,ö,ü这样的字符会被更改,例如:Angularjs 如何从angular中解码通过$sanitize方法的字符串中的重音字符,angularjs,Angularjs,使用from ngSanitize,像ä,ö,ü这样的字符会被更改,例如: haystack = "ö ä ü è é à" console.log(haystack); // returns: ö ä ü è é à haystack = $sanitize(haystack); console.log(haystack); // returns: ö ä ü è é à 我需要解码这
haystack = "ö ä ü è é à"
console.log(haystack); // returns: ö ä ü è é à
haystack = $sanitize(haystack);
console.log(haystack); // returns: ö ä ü è é à
我需要解码这些重音字符
有没有一种简洁的方法可以在$sanitize之后解码重音字符
编辑:
我为什么要这样做
当用户输入一个特定的表达式时,表达式会变成一个按钮。这是通过$sce.trustAsHtml()实现的
如果我不清理用户输入,那么用户可以编写如下内容:警报(“恶意javascript”),然后调用警报。清理后,我的代码出现,用按钮替换特定表达式
编辑2:
我犯了一个错误:
在我的例子中,我将如何使用innerHtml来获取经过清理的html的数据?如果您实际将此值插入要计算的DOM中,则可以获取纯文本值
> b = document.createElement('button')
<button></button>
> b.innerHTML = 'ö ä ü è é à'
"ö ä ü è é à"
> b.textContent
"ö ä ü è é à"
>b=document.createElement('按钮')
>b.innerHTML='ö;ä;ü;è;é;à;'
"ö ä ü è é à"
>b.文本内容
"ö ä ü è é à"
但是,您应该重新考虑如何使用此值,以及为什么要丢弃原始输入。通过消毒液对不受信任的值进行往返,以HTML形式进行评估,然后获取呈现的输出,这会让下一个维护此值的人感到困惑。您可以详细说明您的用例是什么吗?为什么不干脆执行
消毒=$sanitize(干草堆)
那么在消毒之前,您仍然可以参考原始的干草堆。@Ankh我更新了我的问题。您需要进一步的信息吗?您是否将输入评估为HTML?您是否真的需要我添加了一个Plunker并更新了问题。您能帮助我使用innerHtml吗?非常感谢很