2012-04-10 7 views
2

ich eine neue Zeile zu drucken, ich versuche und je die Dust.js Führung, in der Vorlage Ich habe eine {~ n} am Ende jedes Datensatzes AusgabeDust.js Escape-Zeichen

{#friends} {name}, {age}{~n}{/friends} 

I zusammengestellt die über Vorlage und bin Rendering mit ein paar JSON-Datensätze, um 'out' -Objekt zu generieren. Ich verwende document.getElementById ('divID'). InnerHTML, um das 'out' -Objekt dynamisch in einem grundlegenden DIV-Tag zu ersetzen. Das Problem ist, dass ich Newline trotz des {~ n} nicht drucken kann. Ich habe es auch versucht, aber immer noch kein Glück. Irgendwelche Gedanken?

Antwort

3

HTML minimiert benachbarte Leerzeichen (einschließlich Zeilenvorschubzeichen) standardmäßig in ein einzelnes Leerzeichen. Es gibt keinen Unterschied zwischen a word und a \n word (oder a \r word oder a \r\n word für diese Angelegenheit) standardmäßig für meisten Elemente. Die Lösung ist entweder:

  • Verwenden Sie ein <br> Element der Pause
  • der Stil auf Ihrem div whitespace: pre; sein

Alternativ Set hinzuzufügen, können Sie eine Liste verwenden (das ist wahrscheinlich mehr semantisch für Ihren Anwendungsfall und sollte bevorzugt werden).

+0

Ihre beiden Vorschläge angewendet, es funktionierte - thx – Noosphere

+0

nicht von 'Leerzeichen wusste: pre,' dass ziemlich cool HTML sauber zu halten und die Notwendigkeit zusätzlicher Logik vor dem Rendern der Vorlage. Ich würde lieber 'whitespace: pre-wrap' oder' whitespace: pre-line' verwenden, weil ich nicht möchte, dass lange Zeichenketten/Wörter aus dem Container herausbrechen. Danke. –

2

Wenn Sie als HTML rendern, müssen Sie anstelle eines Zeilenumbaus ein <br>-Tag verwenden.

Verwandte Themen