我正在使用AngularJS与第三方服务生成HTML响应。我想使用ng-repeat将HTML响应呈现为列表,但Angular将其呈现为文本。
是否可以使用ng-repeat来呈现HTML属性?
我已经创建了这个jsFiddle来演示我的问题。 http://jsfiddle.net/DrtNc/1/
答案 0 :(得分:19)
我认为使用ng-bind-html-unsafe
可以满足您的需求。
<div ng:repeat="item in items" ng-bind-html-unsafe="item.html"></div>
这是一个工作小提琴:http://jsfiddle.net/nfreitas/aHfAp/
该指令的文档可在此处找到:http://docs.angularjs.org/api/ng.directive:ngBindHtmlUnsafe
答案 1 :(得分:16)
我实现这一目标的方法是在ng-repeat中使用ng-bind-html;
<div ng-repeat="comment in comments">
<div ng-bind-html="comment.content"></div>
</div>
希望这有助于某人!
答案 2 :(得分:2)
item.html将始终被解释为文本。你必须明确地将它转换为HTML。 click here
我添加了一个渲染函数,它将每个字符串转换为html。