17

我将 AngularJS 与生成 html 响应的第三方服务一起使用。我想使用 ng-repeat 将 HTML 响应呈现为列表,但是 Angular 将其呈现为文本。

是否可以使用 ng-repeat 呈现 HTML 属性?

我创建了这个 jsFiddle 来演示我的问题。 http://jsfiddle.net/DrtNc/1/

4

3 回答 3

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

于 2012-07-10T15:02:02.480 回答
17

我实现这一点的方法是通过 ng-repeat 中的 ng-bind-html;

<div ng-repeat="comment in comments">
  <div ng-bind-html="comment.content"></div>
</div>

希望这对某人有帮助!

于 2014-09-17T13:03:02.660 回答
2

item.html 将始终被解释为文本。您必须将其显式转换为 html。点击这里

我添加了一个渲染函数,它将每个字符串转换为 html。

于 2012-07-10T08:15:43.743 回答