2017-10-26 2 views
0

ich html bin zu erzeugen und es in meiner Web-Seite eingefügt mitWie rückgängig zu machen bypassSecurityTrustHtml, dh SafeValue bespannen konvertieren zurück

let data = '<font color=blue>hello world</font>'; 
this.safevalue = this.domSanitizer.bypassSecurityTrustHtml(data); 

An anderer Stelle in meinem Code ich den sicheren Wert in eine Zeichenkette konvertieren möchten, so habe ich versucht, dieses ...

data = this.safevalue.toString(); 

aber dies setzt Daten in eine Zeichenfolge wie folgt ...

'SafeValue must use [property]=binding: (see http://g.co/ng/security#xss)' 

, die nicht hilfreich

+0

Was Sie mit 'console.log bekommt (dieser. safevalue) '? –

+0

@ GünterZöchbauer Ich bekomme das gleiche wie zu String. –

Antwort

1

Ich weiß nicht, ob Sie bereits eine Lösung für dieses gefunden, aber, wenn Sie nur wollen, um den ursprünglichen Wert, als sicher markiert:

var yourString = this.domSanitizer.sanitize(SecurityContext.HTML, data) 
+0

Funktioniert das? Wenn die Daten "Hello world" sind, wird der Wert von 'yourString.toString()' auch "Hello world" sein? –

+0

Ja, tut es. So mache ich das in meiner Bewerbung hier. Probieren Sie es aus und lassen Sie es mich wissen, wenn Sie Hilfe brauchen! Sie müssen nur IhreString (keine Notwendigkeit für .toString(), es ist eine Zeichenfolge) – DeBorges

0

I habe durch die source code gegraben und es scheint, dass es nicht möglich ist die Original-Zeichenkette aus einem SafeValue zu bekommen. Ich denke also, dass ich für alle unsicheren Werte ein paralleles Datenfeld haben muss.

Verwandte Themen