微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

angularjs – 使用过滤器标记mousestats的敏感数据

我想用MouseStats注释装饰一些敏感数据.
目前我这样做:

<td><!-- StartMouseStatsHide -->{{ $ctrl.payerName }}<!-- EndMouseStatsHide --></td>

但是在界面的许多地方都有很多敏感数据,所以我尝试使用过滤器来装饰值

<td>{{ $ctrl.payerName|mousestats_hide }}</td>

过滤器只是用注释包围值.
问题是以这种方式将评论转义给实体.

你有什么建议?
是否可以使用过滤器?

解决方法

Is it possible to do it using filters?

是的,可以使用角度过滤器预先添加/附加变量.

The problem is that in that way comments are being escaped to entities..

这是因为您使用{{$ctrl.payerName}}直接在范围内插入变量.它不解析HTML标记并按原样显示结果字符串.

如果要围绕给定值添加HTML注释,则需要ng-bind-html指令以防止将注释转义为实体.

所以而不是做

<td>{{ $ctrl.payerName|mousestats_hide }}</td>

你应该做

<td ng-bind-html="$ctrl.payerName|mousestats_hide"></td>

这是生成以下标记working demo.
(我不喜欢< table>所以只需用<>替换< td>)

<body ng-controller="MainCtrl" class="ng-scope">
    <span>Payer Name is: </span>
    <span ng-bind-html="payerName |mousestats_hide" class="ng-binding">
      <!-- StartMouseStatsHide -->Jakub Filipczyk<!-- EndMouseStatsHide --> 
    </span>
</body>

注意到我在过滤器中注入的$sce服务的使用?

这是为了防止[$sce:unsafe] error 使角度相信有人试图在安全的环境中使用不安全的值.

希望它有所帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐