ng-bind-html-unsafe
был удален в Angular 1.2
Я пытаюсь реализовать то, что мне нужно использовать ng-bind-html-unsafe
. В документах и на комитете github говорится:
ng-bind-html обеспечивает поведение, подобное ng-html-bind-unsafe (innerHTML - результат без очистки), когда привязано к результату $ sce.trustAsHtml (string).
Как ты делаешь это?
Ответы:
Которые должны быть:
плюс в вашем контроллере:
вместо старого синтаксиса, где вы можете ссылаться на
$scope.html
переменную напрямую:Как указали несколько комментаторов,
$sce
должен быть введен в контроллер, в противном случае вы получите$sce undefined
ошибку.источник
<p ng-bind-html="trustedHtml"></p>
и$scope.trustedHtml = $sce.trustAsHtml(description(category.id));
<p ng-bind-html="description(category.id)"></p>
затем последняя строка функции:return $sce.trustAsHtml(value);
Фильтр
использование
источник
ngSanitize
здесь?ngSanitize
, поэтому в этом нет необходимостиngSanitize
Лично я очищаю все свои данные с помощью некоторых PHP-библиотек, прежде чем войти в базу данных, поэтому мне не нужен другой XSS-фильтр.
От AngularJS 1.0.8
Использовать:
Чтобы отключить
$sce
:источник
<script>System.out.printIn("Hello World!");</script>
, не пробовал это лично, потому что мой PHP удалил все JS из пользовательского ввода. Я удалил свой второй пример, потому что родной Angular превосходен во всех отношениях, просто используйте этот.var line = "<label onclick="alert(1)">aaa</label>";
1. использовать фильтр
используя (HTML):
2. используйте ngSanitize: безопаснее
включают
angular-sanitize.js
добавить
ngSanitize
в корень угловое приложениеиспользуя (HTML):
источник
Простое создание фильтра поможет. (Ответили за угловой 1.6)
И используйте это как следовать в HTML.
источник
Если вы хотите вернуть старую директиву, вы можете добавить это в свое приложение:
Директива:
использование
Источник - https://github.com/angular-ui/bootstrap/issues/813
источник
JavaScript
HTML
источник
Для Rails (по крайней мере, в моем случае), если вы используете гем angularjs-rails , пожалуйста, не забудьте добавить модуль sanitize
А затем загрузить его в свое приложение ...
Тогда вы можете сделать следующее:
На шаблоне:
И в итоге:
источник
источник
источник