Konvertieren mehrzeiligen text zu HTML-Absätze mit AngularJS
Ich bin immer eine mehrzeilige Klartext aus meiner backend.
Beispiel:
Lorem ipsum dolor sit amet, <strong>consectetur</strong> adipiscing elit.
Nunc porta velit ut nunc pretium, quis auctor nunc placerat.
In quis porta neque.
Fusce dapibus faucibus mi ut egestas.
<p>Phasellus egestas magna posuere, bibendum dui quis, lacinia nisl.</p>
Will ich es Rendern mit AngularJS als HTML-Absätze.
So, in diesem Beispiel wird zu:
<p>Lorem ipsum dolor sit amet, <strong>consectetur</strong> adipiscing elit.</p>
<p>Nunc porta velit ut nunc pretium, quis auctor nunc placerat.
In quis porta neque.
Fusce dapibus faucibus mi ut egestas.</p>
<p><p>Phasellus egestas magna posuere, bibendum dui quis, lacinia nisl.</p></p>
Bitte beachten Sie, dass alle HTML-code, die es in der ursprünglichen nur-text muss sicher entkommen (inklusive der vorhandenen <p>
's), so kann ich nicht nur für meinen filter tun und die Flucht danach.
Sehe ich es als ein 3-Schritte-Prozess:
- Escape-HTML-Einschlüsse im ersten text.
- Filter anwenden zum brechen von mehrzeiligen text in Absätze.
- Ausgabe text ohne weiteres entkommen.
Aber ich bin mir nicht sicher, was ist die beste Methode für die Umsetzung jeder Schritt.
Könnten Sie mich mit dem richtigen Konzept-Vektor? Danke!
- Ist SO eine "senden Sie Ihre Anforderungen und die Entwickler entwickeln die Lösung für Sie" - community ?
- Ich bin downvoting diese Frage, weil Sie noch nicht gezeigt, jede Forschung oder enthalten alle Codes zeigen was haben Sie versucht,. Warum sollte ich investieren meine Zeit zu tun, Ihre Arbeit für Sie, wenn Sie nicht selbst bereit sind zu investieren, Ihre eigene Zeit in der Lösung des Problems?
- Das ist eine konzeptionelle Frage. Ich verlange nicht, Sie zu tun, die für mich arbeiten. Ich bitte für die Führung eine mehr Erfahrung AngularJS-Entwickler, ich bin gerade erst anfangen, es zu lernen. Vielleicht habe ich overdetailed es, aber ich wollte einfach klar, mit meinen Anwendungsfall. Ich sehe viel schlimmer Fragen mit kopieren-einfügen-code auf, SO dass alle die Zeit. Übrigens, ich habe studiert die Unterlagen und einige Artikel aufmerksam und konnte Sie nicht finden, die richtige Ansatz-Vektor dieses problem, da es komplizierter ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, ich habe endlich dieses Problem gelöst. Ich hoffe, diese Antwort hilft jemand.
Wie ich bereits erwähnt habe ist dies ein 3-Schritte-Prozess.
Für den ersten Schritt habe ich versucht zu finden, einige der bestehenden Funktion zu entfliehen ersten text, aber ohne Erfolg. Scheint, wie AngularJS ist nicht setzen alle Methoden, dies zu tun (bitte korrigiert mich wenn ich falsch Liege). Endlich habe ich meinen eigenen filter, um escape-HTML:
Dann habe ich einen filter zu brechen, plain text in Absätze:
Ich bin Injektion früh erstellt
htmlEscape
filter und mit$sce.trustAsHtml
Methode Rückgabewert geeignet für den Einsatz mitng-bind-html
Richtlinie.Und am Ende bin ich aufrufen dieser filter in der partial-template wie dieses:
Hier ist das Ergebnis:
Ich würde die Verwendung der ng-sanitze Modul in das Eckige-API. Ich denke, dass sollte abdecken, was du suchst.
$desinfizieren