我试图显示从可以html编码的数据库返回的值
what's up!
在ng-repeat中,我输出这个值并将值传递给一个函数进行处理,并使用" trustAsHtml'功能
return $sce.trustAsHtml(html);
当我第一次加载页面时,一切看起来都很棒。该值输出为what's up!
但是,如果我向模型添加值,它们将作为编码版本输出,直到我重新加载页面。
有关于此的任何想法吗?我很难过。
答案 0 :(得分:0)
您可以使用ngBindHtmlUnsafe
<div ng-app ng-controller="MyCtrl">
<ul>
<li ng-repeat=" opt in opts" ng-bind-html-unsafe="getContent(opt)" >
{{ opt.value }}
</li>
</ul>
<p>{{opt}}</p>
</div>
function MyCtrl($scope) {
$scope.getContent = function(obj){
return obj.value + " " + obj.text
}
$scope.opts = [
{value: 111, text: '<b>1st</b>' },
{value: 222, text: '<i>2nd</i>' }
];
}
答案 1 :(得分:0)
我不确定这一点,但我发现这可以帮到你。你可以创建一个指令,通过它使用$ watch函数来更新$ sce。
<div ng-controller="myCtrl">
<b>User comments</b><br>
<div class="well">
<div ng-repeat="userComment in myCtrl.userComments">
<span ng-bind-html="userComment.htmlData"></span>
<br>
</div>
</div>
</div>
var ngBindHtmlDirective = ['$sce', function($sce) {
return function(scope, element, attr) {
scope.$watch($sce.parseAsHtml(attr.ngBindHtml), function(value) {
element.html(value || '');
});
};
}];