2014-12-15 1 views
0

Я бы хотел (а) переслать HTML-письмо на веб-страницу, но оно передается как буквальное. Любые идеи, что я делаю неправильно?Почему HTML не передается из AngularJS?

HTML:

<div ng-app="app" ng-controller="ctrl"> 
{{price}} 
<br> 
    Only <strike>$49</strike> $29 
</div> 

Угловой:

var app = angular.module('app',[]); 

app.controller('ctrl', function($scope,$sce){ 
    $scope.price = $sce.trustAsHtml('Only <strike>$'+49+'</strike> $'+29);; 
}); 

Выход:

Only <strike>$49</strike> $29 
Only $49 $29 

Пример: http://jsfiddle.net/eyks7zu9/3/

ответ

2

Ниже код, с <span> т ag, который имеет значение ng-bind-html. Я мог быть совершенно неправ, поскольку я не самый лучший с угловатым я, но я не верю, что то, что вы пытаетесь сделать, будет работать так, как вы намереваетесь, поскольку Angular пытается сохранить модель Sandbox довольно жесткой относительно внедрения HTML-кода ,

var app = angular.module('app', []); 
 

 
app.controller('ctrl', function($scope, $sce) { 
 
    $scope.price = $sce.trustAsHtml('Only <strike>$' + 49 + '</strike> $' + 29);; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="ctrl"> 
 
    <span ng-bind-html="price"></span> 
 
    <br>Only <strike>$49</strike> $29 
 
</div>

+0

Ok. Просто вопрос с ng-bind-html? И вам все еще нужно использовать SCE? – 4thSpace

+0

Да для обоих. Если вы удалите '$ sce' и попытаетесь просто присвоить HTML-код' $ scope.price', ошибка безопасности будет вызываться угловой. – Jhecht

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