AngularJs过滤要解析的元素

时间:2014-11-28 13:57:41

标签: html angularjs

我在包含HTML元素的动态消息列表中使用ng-repeat。要显示这些元素,请使用ng-bind-html$sce.trustAsHtml()

这很完美,但$sce.trustAsHtml()解析每个html元素,包括脚本等,但我只需要解析<img>,<br>,<i> or <b>之类的东西。是否有可能过滤掉我不需要解析的元素?

谢谢!

更新

抱歉,我没有提供一些代码,但问题已解决:

我添加了脚本,添加了&#34; ngSanitize&#34;到angular.module("name",[...,"ngSanitize"])

还有另一个问题:我从$sce.trustAsHtml(message)绑定了html,但是没有消毒。仅使用ng-bind-html="message"就足够了!

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

选项1:

在javascript中使用strip_tags php等效项。 (strip_tags

   $sce.trustAsHtml( strip_tags($html, '<img><br><i><b>') );

选项2:

您可以使用ngSanitize模块。默认情况下,生成的HTML内容将使用$sanitize服务进行清理。

 angular.module('app', ['ngSanitize'])

Plunker演示

更多信息:$sanitize