2013-12-26 3 views
18

Когда Angular интерполирует разметку и вставляет скопированные переменные в шаблон стиля {{post}}, он ускользает от HTML.Предотвращение уклонения от уклонения HTML

Приложение, которое я создаю, требует от пользователей создания шаблонов, используя фигурные фигурные скобки для вставки имен переменных, я не хочу чрезмерно усложнять его, введя директивы для некоторых переменных и завитушек для других.

Есть ли способ визуализации неэкранированного HTML через фигурные шаблоны?

Моя единственная альтернатива заключается в рендеринге прокси-элемента, когда пользователь пытается отобразить {{post}}, который затем я могу захватить с помощью jQLite и вставить HTML вручную, но это все оттенки беспорядочного. Есть идеи?

+4

Я не думаю, что есть (для того, что _that» s_ worth); но вы можете заменить '{{post}}' чем-то вроде '' при обработке шаблона. Убедитесь, что вы не открыли [инъекционные атаки] (http://en.wikipedia.org/wiki/Code_injection), хотя это скорее риск, если вы используете 'ng-bind-html-unsafe', так как' ng-bind -html' по-прежнему выполняет некоторую дезинфекцию. – towr

+1

Возможный дубликат [AngularJS: Вставка HTML из строки] (http://stackoverflow.com/questions/14761724/angularjs-insert-html-from-a-string) –

ответ

19

Ваше желание посмотреть на ngBindHtml.

«Для того, чтобы использовать эту функцию, убедитесь, что $ Sanitize имеется, например, путем включения ngSanitize в зависимости вашего модуля (не в ядре угловыми.)»

+0

Он также переопределяет все внутри элемента. Где с фильтром я мог бы это сделать: «Привет, сегодня вы чувствуете {{:: happy_face: '| emoji}} ' –

Смежные вопросы