2016-05-06 8 views
6

Ich möchte einige sensible Daten mit MouseStats-Kommentaren dekorieren. ich tue es Zeit wie folgt aus:Verwenden Sie Filter, um vertrauliche Daten für Mausstats zu markieren

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

aber es gibt viele sensible Daten an vielen Orten der Schnittstelle, so habe ich versucht, einen Filter zu verwenden, um den Wert

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

Filter einfach zu dekorieren umgibt den Wert mit Kommentaren. Das Problem ist, dass auf diese Weise Kommentare zu Entitäten maskiert werden.

Was schlagen Sie vor? Ist es möglich, Filter zu verwenden?

+0

Sie möchten nur einen Kommentar um sensible Daten hinzufügen, richtig? Ich denke, wir können es mit Filter und regulären regulären Ausdrücken machen. Hast du bisher einen Code für Filter geschrieben? Wir brauchen ein Muster, um sensible Daten zu erkennen – murli2308

+0

wir brauchen keinen regulären Ausdruck. Sensible Daten können ein beliebiges Format haben. Das Ziel ist es, einen Filter zu erstellen, der HTML-Kommentare um gegebene Werte hinzufügt –

Antwort

4

Ist es möglich, Filter zu verwenden?

Ja, es ist möglich, eine Variable mit Winkelfiltern voranzustellen/anzuhängen.

Das Problem besteht darin, dass auf diese Weise Kommentare zu Entitäten .. entkommen werden

Das ist, weil Sie direkt sind die Variable im Umfang mit {{ $ctrl.payerName }} interpoliert werden. Es analysiert keine HTML-Tags und zeigt die resultierende Zeichenfolge unverändert an.

Sie benötigen ng-bind-html Direktive, um zu verhindern, dass die Kommentare in Entitäten maskiert werden, wenn Sie HTML-Kommentare um gegebene Werte hinzufügen möchten. So

anstatt tun

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

sollten Sie tun

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

Hier die working demo ist, die das folgende Markup generiert. (ich bin nicht viel von einem Fan von <table> so ersetzt nur <td> mit einem <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> 

die Verwendung von $ sce Service Bemerkt ich in Filter injiziert?

Es ist zu verhindern, dass [$sce:unsafe] error winkelig glauben, jemand versucht, einen unsicheren Wert in einem sicheren Kontext zu verwenden.

Ich hoffe, es hat geholfen!

Verwandte Themen