AngularJS: Как разрешить "Попытка использовать небезопасную ценность в безопасном контексте"?

Когда я попытался показать свои данные как text-html, он отображается в формате HTML, но когда я обновил страницу, я получаю эту ошибку:

[$ sce: unsafe] Попытка использовать небезопасное значение в безопасном контексте.

Вот мой код AngularJS:

data.attributes.task_name = $sce.trustAsHtml(data.attributes.task_name);

HTML

<span ng-bind-html="taskdata.attributes.task_name" data-html="true" title="{{reminder.attributes.message}}"></span>

Ответ 1

В Angular документации:

Значение, предоставленное для использования в конкретном контексте, не было найдено безопасный/надежный для использования.

AngularJS Режим Strict Contextual Escaping (SCE) (включен default), требует привязки в определенных контекстах, чтобы получить значение которому доверяют как безопасные для использования в таком контексте. (например, загрузка Шаблон AngularJS из URL-адреса требует, чтобы URL-адрес считался одним из безопасно для загрузки ресурсов.)

Это помогает предотвратить XSS и другие проблемы безопасности. Подробнее на Строгий Контекстное экранирование (SCE)

Вы можете включить модуль ngSanitize для использования автоматического дезинфицирующий.


Вы должны включить ngSanitize:

Загрузите его на index.html:

<script src="lib/angular/angular-sanitize.min.js"></script>

Внесите его как зависимость в app.js:

angular.module('myApp', ['...', 'ngSanitize']);