Ich erhalte einige Textdaten mit JSON, diese Daten enthalten Text formatiert mit Zeilenumbrüchen. Ich möchte diese Zeilenumbrüche gerne dem Benutzer rendern.Rendern von Zeilenumbrüchen wie <br> Tags mit Aurelia
Frage: Was ist der "richtig"/"empfehlenswert" Ansatz, um dies zu erreichen?
Optionen Ich habe versucht:
- Bindung normalerweise:
<p>${myText}</p>
: Renders keine Zeilenumbrüche <pre>
Verwendung:<p><pre>${myText}></pre></p>
: Renders Zeilenumbrüche, haben aber alle bekannt und beliebt Probleme mit langen<pre>
Text, wie horizontalen Scrollen in einigen Browsern und suboptimales Word breaking.- Bindung normalerweise einen Valueconverter verwenden, die Zeilenumbrüche mit
<br>
Tags ersetzt:<p>${myText | textFormat}</p>
export class TextFormatValueConverter {
toView(value) {
return value.replace(new RegExp('\r?\n','g'), '<br>');
}
}
Diese <br>
-Tags nicht machen, aber die Aurelia Binder entweicht die Tags und zeigt sie als normaler Text an den Benutzer. * Bindung mit dem oben genannten Konverter und innerHTML: <p innerHTML.bind="myText | textFormat"></p>
: Rendert ok, aber ich bin besorgt, dass es anfällig für Exploits sein könnte, da die Texte von einem Legacy-System kommt, die keine sanitazion Eingang in Bezug auf die Verwendung für das Web tut.
Was [sterilisieren-html] (https://github.com/aurelia/templating-resources/blob/master/src/ sanitize-html.js) Konverter? – dfsq
Danke :) Davon wusste ich nichts. so eine mögliche Lösung wäre, durch das Desinfektionsmittel zu leiten, oder einfach meinen eigenen Konverter zu erweitern, um Hygiene einzubeziehen. Ich glaube, dass einige sanitation in der innerHtml-Bindung enthalten ist (mit Blick auf den Code von Ihnen oben verlinkt, scheint es nur Skripte zu sein, die hier gestoppt werden und ich glaube, dass die innere html davon standardmäßig schützt (könnte aber falsch sein). Ich weiß noch nicht genug, um zu sagen, ob der Schutz vor Skript-Tags gut genug ist oder ob mehr Schutz in Betracht gezogen werden sollte. – Vidar
Siehe ["Sollten Fragen" Tags "in ihren Titeln enthalten?"] (http: //meta.stackexchange. com/questions/19190/should-questions-include-tags-in-the-titles), wo der Konsens "nein, sollten sie nicht!" –