我想用MouseStats注释装饰一些敏感数据。 目前我这样做:
<td><!-- StartMouseStatsHide -->{{ $ctrl.payerName }}<!-- EndMouseStatsHide --></td>
但是在界面的很多地方都有很多敏感数据,所以我试图使用过滤器来装饰值
<td>{{ $ctrl.payerName|mousestats_hide }}</td>
过滤器只是用注释包围值。 问题是以这种方式将评论转义为实体。
你有什么建议? 可以使用过滤器吗?
答案 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 使角度相信有人试图在安全的环境中使用不安全的值。
希望它有所帮助!