Vorrei passare da underscore template
a mustache.js
.dal modello di sottolineatura a moustache.js
Poiché in moustache.js non ci sono if statements
come posso modificare questa parte di codice per utilizzare mustache.js
?
<% 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>
<% } %>
La mia soluzione è:
{{#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}}
Si lavora per variabile totale, perché potrebbe essere 0 o più, ma non ho idea di che cosa è il modo migliore per risolvere il problema su variabili rimanenti, che potrebbe essere 1 o più.
<span class="word"><%= remaining == 1 ? 'item' : 'items' %></span> left.</span>
Dovrebbe essere qualcosa di simile:
<span class="word">
{{#remaining}} 'items' {{/remaining}}
{{^remaining}} 'item' {{/remaining}}
</span>
Non funziona perché restante potrebbe essere 1 o più.
Secondo la documentazione '' Handlebars' se statements' funziona in questo modo: se il suo argomento restituisce false, undefined, null o [] (un valore "falsy") , 'Handlebars' non renderà il blocco. Ma questo è equivalente a rendere '{{#total}}' e '{{^ ^}}' nei baffi. – underscore666