filter - 对 AngularJS 的输出 HTML 应用过滤器

标签 filter escaping angularjs

我在 AngularJS autolink 中创建了 2 个过滤器和 nl2br .

autolink : 将 URL 字符串转换为 <a>带有属性的标签 rel="nofollow" target="_blank" .我尝试将 ngSanitize 与 linky 过滤器一起使用,但它没有向其中添加上面的 2 个属性,也没有提供使用现有 API 的方法。

nl2br : 将新行转换为 <br>标签。

我想将这 2 个过滤器应用于 {{ comment }}使用 {{ comment | autolink | nl2br }}在我的 HTML 中,但过滤器是在 AngularJS 进行 HTML 转义之前应用的,这会导致 <a><br>也被逃脱。基本上,我想应用过滤器 之后 逃跑发生了。

有没有办法用 AngularJS 做到这一点?

最佳答案

如果您的 HTML 中有标准插值,Angular 将转义它:

<div> {{ var | filter1 | filter2 }} </div>

整个表达式的结果将被转义。

你要的是ng-bind-html-unsafe (docs here) .您可以表达与上述基本相同的内容:
<div ng-bind-html-unsafe='var | filter1 | filter2'></div>

现在表达式的结果将不会被清理,并将作为 div 的内容插入。

编辑:注意还有 ng-bind-html ,它仍然会生成 HTML,但会首先对其进行清理 ( $sanitize docs)。
ng-bind-html住在ngSanitize模块,因此您必须确保已在 angular.module 中将其声明为依赖项。称呼。

关于filter - 对 AngularJS 的输出 HTML 应用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14988598/

相关文章:

mysql - JOIN中子查询(GROUP BY)最高效的过滤位置

javascript - 搜索/过滤嵌套数组 Javascript/Lodash

Django:list_filter 和外键字段

batch-file - 如何在批处理文件中回显包含特殊字符的 ASCII 艺术?

javascript - Fabricjs:撤消时不呈现背景图像

javascript - Angularjs 表单验证顺序

cocoa - 如何将灰度图像转换为RGB图像?

javascript - 如何解析json中的特殊字符?

python - 这个 eval() 是可破解的吗?

javascript - 如何在同一页面上的 Angular 应用程序和非 Angular 应用程序之间进行通信?