我在包含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"
就足够了!
感谢您的帮助。
答案 0 :(得分:0)
在javascript中使用strip_tags
php等效项。 (strip_tags)
$sce.trustAsHtml( strip_tags($html, '<img><br><i><b>') );
您可以使用ngSanitize
模块。默认情况下,生成的HTML内容将使用$sanitize
服务进行清理。
angular.module('app', ['ngSanitize'])
Plunker演示
更多信息:$sanitize