解析Angular表达式中的HTML

时间:2013-04-11 15:24:56

标签: angularjs

解码传递给Angular表达式的字符串中包含的HTML的最佳方法是什么?

示例:

如果我从服务器返回的字符串如下:

var some_val = "Hello <strong>World</strong>!"

如何让它呈现HTML而不是将其显示为文本?

<!-- Renders to Hello <strong>World</strong>! -->
<span>{{ some_val }}</span>

更新:这是转发器中的实际用例:

作品(未经过抽样)

<div ng-repeat="category in some_list">
   <p>{{ category.name }}</p>
   <p ng-repeat="bullet in category.bullets">{{ bullet.desc }}</p>
</div>

根本不起作用

<div ng-repeat="category in some_list">
   <p ng-bind-html="category.name"></p>
   <p ng-repeat="bullet in category.bullets" ng-bind-html="bullet.desc"></p>
</div>

1 个答案:

答案 0 :(得分:26)

如上所述here, in the docs

<span ng-bind-html="some_val"></span>

请记住,some_val必须是角度模型(基本上,$scope.some_val必须存在于应用中的某个位置)

编辑:

我应该澄清:ng-bind-html是模块ngSanitize中的服务,不包含在angularJS核心中。 ng-bind-html-unsafe是核心ng模块的一部分,但它包含您提供的字符串而不对其进行清理(请参阅the ngBindHtmlUnsafe docs中的示例)。

如果您需要/需要使用ngBindHtml,则需要包含ngSanitize - available here