Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何从angular中解码通过$sanitize方法的字符串中的重音字符_Angularjs - Fatal编程技术网

Angularjs 如何从angular中解码通过$sanitize方法的字符串中的重音字符

Angularjs 如何从angular中解码通过$sanitize方法的字符串中的重音字符,angularjs,Angularjs,使用from ngSanitize,像ä,ö,ü这样的字符会被更改,例如: haystack = "ö ä ü è é à" console.log(haystack); // returns: ö ä ü è é à haystack = $sanitize(haystack); console.log(haystack); // returns: ö ä ü è é à 我需要解码这

使用from ngSanitize,像ä,ö,ü这样的字符会被更改,例如:

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 = '&#246; &#228; &#252; &#232; &#233; &#224;'
"&#246; &#228; &#252; &#232; &#233; &#224;"
> b.textContent
"ö ä ü è é à"
>b=document.createElement('按钮')
​​
>b.innerHTML='ö;ä;ü;è;é;à;'
"ö ä ü è é à"
>b.文本内容
"ö ä ü è é à"

但是,您应该重新考虑如何使用此值,以及为什么要丢弃原始输入。通过消毒液对不受信任的值进行往返,以HTML形式进行评估,然后获取呈现的输出,这会让下一个维护此值的人感到困惑。

您可以详细说明您的用例是什么吗?为什么不干脆执行
消毒=$sanitize(干草堆)
那么在消毒之前,您仍然可以参考原始的
干草堆。@Ankh我更新了我的问题。您需要进一步的信息吗?您是否将输入评估为HTML?您是否真的需要
我添加了一个Plunker并更新了问题。您能帮助我使用innerHtml吗?非常感谢很