Combining ng-repeat and ng-bind-html?

Combining ng-repeat and ng-bind-html?

本文关键字:ng-bind-html and ng-repeat Combining      更新时间:2023-09-26

我有一个消息列表,其中的文本包含一些我想显示的html。因此,正如这里和这里所建议的那样,我目前正在尝试的是:

<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>而不呈现它们)。

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

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

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

前任:-

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

ng-bind-html 计算表达式并以安全的方式将生成的 HTML 插入到元素中。默认情况下,生成的 HTML 内容将使用 $sanitize 服务进行清理。要使用此功能,请确保$sanitize可用,例如,通过在模块的依赖项(而不是核心 Angular)中包含 ngSanitize。为了在模块的依赖项中使用ngSanitize,您需要在应用程序中包含"angular-sanitize.js"。顺便说一下,这是角度js文档中的描述。您还可以在此处查看将angular-sanitize与ng-bind-html一起使用的示例。

祝你好运。