ng-bind-html改变html结构,为什么?

时间:2016-05-26 15:00:43

标签: html angularjs sanitize ng-bind-html

我通过$ http的AngularJS从后端获取HTML代码,并记录检索到的代码并且没问题,但是为了在浏览器中看到它,html结构发生了变化。 这是我得到的代码:

<a href="  http://www.google.com" target="_blank">
    <figure>
       <img class="img-responsive" src="/sites/Satellite;jsessionid=pk_tbxorbyJ4KrsWxo1jaVBFYvQPx1VovEs2GpjWziIk6cFaL50_!650994948?blobcol=urldata&amp;blobkey=id&amp;blobtable=MungoBlobs&amp;blobwhere=1462843196206&amp;ssbinary=true" />

    </figure>
    <p> Some text</p>
</a>

这就是浏览器显示的内容:

<a href="  http://www.google.com" target="_blank">
</a>
<figure>
    <img class="img-responsive" src="/sites/Satellite;jsessionid=pk_tbxorbyJ4KrsWxo1jaVBFYvQPx1VovEs2GpjWziIk6cFaL50_!650994948?blobcol=urldata&amp;blobkey=id&amp;blobtable=MungoBlobs&amp;blobwhere=1462843196206&amp;ssbinary=true">
</figure>
<p> some text</p>

然后我做了以下测试,记录检索到的代码

  

$ log.debug(vm.myHtml);

然后使用

清理代码
  

$ log.debug($ sce.getTrustedHtml(vm.myHtml))

我得到了同样的差异。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,所以在AngularJS docs上可以使用Plunker。

然后我通过在<h1>标记中放置一些<a>标记来修改它(请参阅此plunker)。好消息是它在这个最基本的案例中起作用。这让我摸不着头脑。

最后,我只是猜测我使用的ngSanitize的版本可能有点旧,在某些时候他们稍微改变了标签的映射,拆分和渲染方式。我浏览了历史,却找不到任何东西。最后,我更新到1.5.7与plunker中的版本相同。并再次微笑:)