2017-09-28 5 views
2

Ich habe dieses Muster überall in meiner App, wo ich einen abschließenden Zeilenumbruch an meine Blöcke haben möchte, wenn irgendwelche Elemente im Array vorhanden sind. So kann ich Dinge wie:Wie fügt man dem Lenker jeweils eine nachlaufende Newline hinzu?

{{#each array}} 
{{value}} 
{{#if @last}} 

{{/if}} 
{{/each}} 

oder mit Lenker-Helfer-Paket ich jede verwenden kann:

{{#any array}} 
{{#each array}} 
{{value}} 
{{/each}} 

{{/any}} 

jedoch in meiner Anwendung der Vorlagen für die Kunden sichtbar sind und es wird immer hässlich, wie ich prolifirate das extra boilerplate über meinen Vorlagencode.

Hat jemand eine elegantere Lösung?

Ich hatte gehofft, dass der Lenker einen Whitespace-Kontrollcharakter hatte, den ich ausnutzen könnte oder zumindest in der Lage sein würde, diesen "wenn" -Block in einen einzigen Liner zu verwandeln.

Antwort

0

Ich würde das mit CSS tun. Bedenken Sie:

Vorlage:

<div class='array-output-wrapper {{#if array}}with-items{{/if}}'> 
    {{#each array}} 
     {{value}} 
    {{/each}} 
</div> 

CSS:

.array-output-wrapper.with-items:after { 
    display: block; 
    content: '\00a0'; // entity code for $nbsp; 
} 

Es erhöht die Lesbarkeit, wie Eingabe-Hit-generierte neue Linie wird leicht übersehen.

+0

Ich mag es, aber für meinen Anwendungsfall gebe ich zu nicht-HTML-Textdateien aus. – btd

+0

Rechts. Ich denke dann an etwas anderes. – wscourge

Verwandte Themen