好吧,以下我在代码中测试的内容如下:
的javascript:
var string = '<p>hello</p>';
$scope.html = $sce.trustAsHtml(string);
HTML:
<span ng-bind-html="html"></span>
我真正想要做的是:从JSON格式的服务器中提取一堆项目。其中一个JSON的密钥叫做“description”,它只是一长串html代码。
我正在将这些项目推送到$ scope数组中,以便我可以通过ng-repeat指令在页面上显示它们。下面的代码总结了它是如何完成的:
的javascript:
$.getJSON('someURL', function(data) {
$scope.items = [];
for (var i = 0; i < data.count; i++) {
var item = {};
item.description = $sce.trustAsHtml(data.item[i].description);
$scope.items.push(item);
}
});
HTML:
<p ng-repeat="item in items">
<span ng-bind-html="item.description"></div>
</p>
由于某种原因,这不会产生任何输出。我读到的东西是,无论你绑定$ sce.trustAsHtml()的变量必须是$ scope变量。在这种情况下,我将它设置为常规变量“item.description”,然后将其添加到$ scope.item数组。
我怀疑这可能是它无法正常工作的原因,但我不知道如何修复它。
任何人都可以帮忙吗?
谢谢!
答案 0 :(得分:8)
尝试<span ng-bind-html="'{{item.description}}'"></span>
。
这样的事对我有用。
答案 1 :(得分:7)
使用AngularJS 1.4.9,它对我有用:
控制器:
.controller('MyCtrl', ['$scope', '$sce',
function($scope, $sce) {
$scope.infoText = $sce.trustAsHtml('My <strong>HTML text</strong>');
}
])
模板:
<span ng-bind-html="infoText"></span>