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

时间:2016-05-06 07:53:43

标签: angularjs

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:4)

  

可以使用过滤器吗?

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

  

问题是以这种方式将评论转义为实体..

这是因为您使用{{ $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>替换了<span>

<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 使角度相信有人试图在安全的环境中使用不安全的值。

希望它有所帮助!