2014-09-14 1 views
1

в пределах JSon элемента, скажем data-html меняAngularjs: IMG SRC исчезающий при загрузке HTML из JSON

<p><img src=\"images/wwgd.png\" alt=\"wwgd\" /></p> 

Что я рендеринга в шаблоне с помощью

<div data-ng-bind-html="data-html"></div> 

Но тонированное выход тегов не имеет источника, только атрибут alt:

(через элемент проверки в firefox):

<p><img alt="wwgd"></img></p> 
+2

Я нашел этот комментарий: «Кроме того, [href] и img [src] автоматически дезинфицируют свои URL-адреса и не передают их через $ sce.getTrusted. SCE здесь не играет никакой роли ». На странице $ sce. –

ответ

2

Я думаю, что вам нужно использовать угловое строжайшее контекстное экранирование $sce. Документы here.

Ваш пример будет выглядеть следующим образом:

Контроллер:

.controller('ExampleController', ['$scope', '$sce', function($scope, $sce) { 

    $scope.myHTML = '<p><img src=\"images/wwgd.png\" alt=\"wwgd\" /></p>'; 

    $scope.trustDodgyHTML = function(html) { 
     return $sce.trustAsHtml(html); 
    }; 

Страница:

<div ng-bind-html="trustDodgyHTML(myHTML)"></div> 

Это позволит вам в явной форме включить этот HTML здесь.

+0

Я думаю, что это эквивалентно 'data-ng-bind-html', который я использовал в моем вопросе? Это не работает. – yayu

+0

Исправлено - я думаю, что использование $ sce поможет вам. –

+0

большое спасибо! это исправило это! – yayu

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