Ich möchte von underscore template
zu mustache.js
wechseln.von Unterstreichungsvorlage zu mustache.js
Da in mustache.js gibt es keine if statements
Wie kann ich dieses Stück Code ändern, um mustache.js
zu verwenden?
<% if (done) { %>
<span class="todo-clear">
<a href="#">
Clear <span class="number-done"><%= done %></span>
completed <span class="word-done"><%= done === 1 ? 'item' : 'items' %></span>
</a>
</span>
<% } %>
Meine Lösung ist:
{{#total}}
<span class="todo-count">{{ total }}
<span class="number">{{ remaining }}</span>
<span class="word"><%= remaining == 1 ? 'item' : 'items' %></span> left.-->
</span>
<span class="hint">
Drag tasks from one list into another and vice versa.
</span>
{{/total}}
Es funktioniert für insgesamt variabel, weil es 0 sein könnte oder mehr, aber ich habe keine Ahnung, was der beste Weg ist, um es zu beheben auf Variable bleibt, die könnte 1 oder mehr sein.
<span class="word"><%= remaining == 1 ? 'item' : 'items' %></span> left.</span>
Es sollte so etwas sein:
<span class="word">
{{#remaining}} 'items' {{/remaining}}
{{^remaining}} 'item' {{/remaining}}
</span>
Es funktioniert nicht, weil noch 1 sein könnte oder mehr.
Nach der 'Handlebars' Dokumentation' wenn statements' auf diese Weise funktioniert: Wenn ihr Argument false zurückgibt, nicht definiert, null oder [] (eine "falsy" -Wert) , 'Lenker' werden den Block nicht rendern. Aber das ist gleichbedeutend mit '{{#total}}' und '{{^ total}}' im Schnurrbart. – underscore666