2016-05-06 7 views
6

Desidero decorare alcuni dati sensibili con i commenti MouseStats. Attualmente sto facendo in quel modo:Utilizza il filtro per contrassegnare i dati sensibili per i mouse.

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

ma ci sono un sacco di dati sensibili in molti luoghi di interfaccia, così ho cercato di utilizzare un filtro per decorare il valore

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

Filter semplicemente circonda il valore con commenti. Il problema è che in questo modo i commenti vengono fatti sfuggire alle entità.

Che cosa suggerisci? E 'possibile farlo usando i filtri?

+0

vuoi semplicemente aggiungere commenti sui dati sensibili, giusto? Penso che possiamo farlo usando il filtro e le espressioni regolari regolari. hai scritto qualche codice per il filtro fino ad ora? abbiamo bisogno di avere qualche schema per rilevare i dati sensibili – murli2308

+0

non abbiamo bisogno di alcuna espressione regolare. I dati sensibili possono avere qualsiasi formato. L'obiettivo è creare un filtro che aggiunga commenti HTML attorno a determinati valori –

risposta

4

È possibile farlo utilizzando i filtri?

Sì, è possibile aggiungere/aggiungere una variabile utilizzando i filtri angolari.

Il problema è che in questo modo i commenti sono sfuggiti alle entità ..

Questo è perché si sta interpolando direttamente la variabile di portata con {{ $ctrl.payerName }}. Non analizza i tag HTML e mostra la stringa risultante così com'è.

È necessaria la direttiva ng-bind-html per impedire che i commenti vengano trasferiti alle entità, se si desidera che aggiunga commenti HTML attorno ai valori dati.

Quindi, piuttosto che fare

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

Si dovrebbe fare

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

Ecco il working demo che genera il seguente markup. (io non sono un gran fan di <table> così appena sostituito <td> con un <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> 

notato l'uso del servizio di $ sce ho iniettato nel filtro?

È per impedire [$sce:unsafe] error che fa credere angolare qualcuno sta tentando di utilizzare un valore non sicuro in un contesto sicuro.

Spero che abbia aiutato!

Problemi correlati