结合ng-repeat和ng-bind-html?

时间:2014-12-10 18:27:46

标签: javascript angularjs ng-bind-html

我有一个消息列表,其中的文本包含一些我想要显示的HTML。因此,我建议herehere正在尝试的是:

<div ng-repeat="message in messages">
    {{ message.sender_name }} - <div ng-bind-html="message.text"></div>
</div>

它显示message.sender_name,但不显示message.text。当我只是{{ message.text }}时,它会正确显示文本(但显示原始<br>而不显示它们。)

有人知道为什么这不起作用吗?

2 个答案:

答案 0 :(得分:2)

ngBindHtml指令需要$sce service来解析和显示绑定的html。因此,您需要在模块解密中包含ngSanitize模块,作为ng-bind-html工作的依赖项。

您可以从以下位置下载适当的版本: - http://ajax.googleapis.com/ajax/libs/angularjs/1.X.Y/angular-sanitize.js

例如: -

angular.module('myApp', ['ngSanitize', ..otherdeps]);

答案 1 :(得分:1)

ng-bind-html评估表达式并以安全的方式将生成的HTML插入到元素中。默认情况下,生成的HTML内容将使用$ sanitize服务进行清理。要使用此功能,请确保$ sanitize可用,例如,在模块的依赖项中包含ngSanitize(不在核心Angular中)。为了在模块的依赖项中使用ngSanitize,您需要包含&#34; angular-sanitize.js&#34;在你的申请中。 顺便说一句,这是来自angular js文档的描述。您还可以在那里看到使用ng-bind-html进行angular-sanitize的示例。

祝你好运。