ngSanitize不允许allow id属性

时间:2014-04-10 05:44:28

标签: angularjs ng-bind-html ngsanitize

我正在使用ngBindHtml来显示(内部)CMS中的一些HTML:

<span ng-bind-html="cmsHtml"></span>

HTML包含带有id属性的链接:

"<a id='fsgPdfLink' href='http://blah/download.pdf' target='_blank'>Click here to download the PDF</a>"

但是,我注意到在将链接写入页面之前,通过angular删除了id属性,因此呈现的内容只是:

<a href='http://blah/download.pdf' target='_blank'>Click here to download the PDF</a>

查看ngSanitize模块的源代码,似乎由于某种原因,id属性不在有效属性列表中:

https://github.com/angular/angular.js/blob/master/src/ngSanitize/sanitize.js#L206

  1. 不允许id属性的原因是什么?是安全隐患吗?
  2. 如果可能,我真的想继续使用ngBindHtml。是否有API可以将安全标签添加到清洁剂列表中?或者我是否必须自己编辑源以添加此标记?

1 个答案:

答案 0 :(得分:1)

要部分回答我自己的问题,似乎没有用于更改内置白名单的API,如本期未解决的问题所述:

https://github.com/angular/angular.js/issues/5900