ng-bind-html删除<(小于符号)后的内容

时间:2019-03-04 15:36:17

标签: javascript angularjs escaping special-characters html-sanitizing

我正在使用角度v1.5.6。我有一些用户输入了html数据以及存储在数据库中的特殊字符。为了说明,

var txt = "<span class='txt_bold'> content with <lessthan signs<span> <span>";

var txt1 = "<span class='txt_bold'> content with <4 lessthan >greaterthan signs <span>";

当我在ng-bind-html指令中放置两行时,我得到的输出如下。

txt : content with 
txt1 : content with <4 lessthan >greaterthan signs

我们可以看到txt中<(小于)号后的单词被指令删除。 我尝试了以下线程中提供的解决方案。但是,它们都不对我有用,以保持html css效果正常工作。

  1. ng-bind-html work partially than expected
  2. Insert HTML into view

任何提示将不胜感激。

1 个答案:

答案 0 :(得分:0)

<span class='txt_bold'> content with <lessthan signs<span> <span>
  

我们可以看到txt中<(小于)号后的单词已被指令删除

那是不正确的。该字符串实际上被解析为:

<span class="txt_bold">
  content with
  <lessthan signs<span>
    <span></span>
  </lessthan>
</span>

<lessthan未被删除;它被解析为<lessthan>标签。它没有被删除;它被渲染为空。

要退出解析,请使用html entities

&lt;lessthan

有关更多信息,请参见MDN Web API Reference - innerHTML operational details