加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在AngularJS的输出HTML上应用过滤器

发布时间:2020-12-17 09:53:05 所属栏目:安全 来源:网络整理
导读:我在AngularJS autolink和nl2br中创建了2个过滤器. autolink:将URL字符串转换为 a标签与属性rel =“nofollow”target =“_ blank”.我尝试使用ngSanitize与链接过滤器,但它不会添加上面的2个属性,也没有提供一个方法来使用这个提供的API. nl2br:将新行转换
我在AngularJS autolink和nl2br中创建了2个过滤器.

autolink:将URL字符串转换为< a>标签与属性rel =“nofollow”target =“_ blank”.我尝试使用ngSanitize与链接过滤器,但它不会添加上面的2个属性,也没有提供一个方法来使用这个提供的API.

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

我想使用{{comment |}将这2个过滤器应用于{{comment}} autolink | nl2br}},但是在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调用中的依赖关系.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读