2017-05-02 6 views
0

My js Objekt enthält doppelte Anführungszeichen, damit ich Speichern von Daten in der Form:HTML-Entities dekodieren und kompilieren

var data = "un <a ui-sref="app.concept({id:1})">test link<\/a>"

die <a ui-sref="app.concept({id:1})">test link<\/a>

bedeutet, wie kann ich die HTML-Entities und kompilieren den ui dekodieren -sref? Mit dieser https://github.com/incuna/angular-bind-html-compile funktioniert nur nicht.

Er druckt <a ui-sref="app.concept({id:1})">test link<\/a> in der Ansicht

+0

Warum speichern Sie Daten wie diese? –

+0

Meine Daten enthalten diesen Anker. Wenn ich versuche, die doppelten Anführungszeichen des ui-sref zu umgehen, lautet das Ergebnis der Kompilierung der Anweisung: 'test link'. Vielleicht vermisse ich etwas .. – alfredopacino

Antwort

0

glaube, ich kann es besser/einfacher sein, diese Daten zu speichern als einen tatsächlichen unescaped HTML-String. Dies würde viel weniger Arbeit erfordern.

Wenn dies jedoch nicht möglich ist, können Sie den $ sce-Dienst in Ihren Controller injizieren und dann nach Ihrer Datenvariablendeklaration data = $sce.trustAsHtml(data) verwenden.

Verwenden Sie danach <div ng-bind-html="data"></div> in der Ansicht. Es sollte dein Problem beheben.

Wenn das nicht vollständig funktioniert, können Sie versuchen, die Datenvariable mithilfe einer Funktion im Unterstrich namens unescape zu enteScape. So kann trustAsHtml(_.unescape(data)) Ihnen helfen.

Router UI zusätzlich

Da Sie Router-ui verwenden, Ihre beste Wette ist wahrscheinlich in this answer wie vorgeschlagen zu tun und href="path/to/state1" nur verwenden, wenn möglich.

+0

Ich habe eine ui-sref-Direktive in der Zeichenfolge, ng-bind-html kompiliert nicht. – alfredopacino

+0

@alfredopacino Ich habe gerade meine Antwort geändert. Ich denke, wenn Sie diesen Weg gehen, dann möchten Sie vielleicht nur tun, was ich vorschlage, und nicht Ui-Sref überhaupt verwenden. –

+0

yeah Ich denke, ich würde die href-Lösung verwenden (wir wissen, dass es nicht die beste Option ist, aber es ist besser, als die Zitate zu kodieren ..) – alfredopacino

Verwandte Themen