Предисловие
Одной из сил AngularJ является мощная функция двунаправленной связывания данных. Две вещи, которые мы часто используем,-это NG-Bind и NG-модель для формы.
Но в нашем проекте мы столкнемся с этой ситуацией, данные, возвращаемые в фоновом режиме, содержат различные теги HTML.
нравиться:
$ scope.currentwork.description = "Привет, <br> <b> Куда мы идем сегодня? </b>"
Мы используем такие инструкции, как NG-BIND-HTML для привязки, но результат-это не то, что мы хотим.
Вот и все
Здравствуйте, куда мы идем сегодня?
Что делать?
Для угловой версии 1.2 мы должны использовать услугу $ SCE для решения нашей проблемы. Так называемая SCE-это аббревиатура «строгого контекстуального сбега». Перевод на китайский является «строгой контекстной режимом», а также может быть понят как безопасное обязательство.
Посмотрим, как его использовать.
Код контроллера:
$ http.get ('/api/work/get?HTML -код:
<p> {{currentwork.description}} </p> Контент, который мы возвращаем, содержит серию тегов HTML. Результаты показаны, как мы говорили в начале статьи. В это время мы должны сказать ему безопасно. Это можно сделать с помощью $ sce.trustAsHtml() . Этот метод преобразует значение в привилегированное принятие и безопасно использует «ng-bind-html». Итак, мы должны представить услугу $ SCE в нашем контроллере
Controller ('TransferWorkStep2', ['$ scope', '$ http', '$ routeparams', '$ sce', функция ($ scope, $ http, $ routeparams, $ sce) {$ http.get ('/api/work/get? Работа;HTML -код:
<p ng-bind-html = "currentwork.description"> </p>
Этот результат прекрасно представлен на странице:
Привет, куда мы идем сегодня?
Мы также можем использовать его так, инкапсулировать его в фильтр и в любое время вызвать его на шаблоне.
app.filter ('to_trusted', ['$ sce', function ($ sce) {return function (text) {return $ sce.trustashtml (text);};}]);HTML -код:
<p ng-bind-html = "currentwork.description | to_trusted"> </p>
Суммировать
Вышеуказанное посвящено директиве NG-BIND-HTML и услуги $ SCE в AngularJS. Я надеюсь, что это поможет вам учиться или работать. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения.