ngSanitize не позволяет разрешить атрибут id

Я использую ngBindHtml для отображения некоторого HTML из (внутренней) CMS:

<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>"

Тем не менее, я заметил, что атрибут id удаляется angular перед записью ссылки на страницу, поэтому то, что визуализируется, просто:

<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 ответ

Чтобы частично ответить на мой собственный вопрос, кажется, что нет API для изменения встроенного белого списка, как описано в этом открытом выпуске:

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

Другие вопросы по тегам