【问题标题】:AngularJS - Is it possible to use ng-repeat to render HTML values?AngularJS - 是否可以使用 ng-repeat 来呈现 HTML 值?
【发布时间】:2012-07-09 15:43:35
【问题描述】:

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

是否可以使用 ng-repeat 来渲染 HTML 属性?

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

【问题讨论】:

  • 对于那些正在查看此问题的人,请查看ngBindHtml 文档的顶部评论。这对我有用,而这些答案却没有。

标签: javascript html model-view-controller web angularjs


【解决方案1】:

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

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

希望这对某人有所帮助!

【讨论】:

【解决方案2】:

我认为使用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

【讨论】:

  • 如果我想在 item.html 中使用自定义指令怎么办?
  • 这已经有几年的历史了——只是想通知新流量这种方法已被弃用。这是一个很好的方法:stackoverflow.com/questions/19415394/…
  • 已弃用,请使用下面的 Matt Saunders 的回答
【解决方案3】:

item.html 将始终被解释为文本。您必须将其显式转换为 html。 click here

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

【讨论】:

  • 嗯……我认为现在庆祝还为时过早。您的解决方案呈现了 innerHTML,我真正需要的是呈现整个 HTML。查看我的更新:jsfiddle.net/DrtNc/4
  • 这不适用于嵌套标签,或者如果您的标签中有部分文本
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-14
  • 1970-01-01
  • 2013-11-21
  • 2013-01-03
  • 1970-01-01
相关资源
最近更新 更多