Me gustaría cambiar de underscore template
a mustache.js
.desde la plantilla de subrayado a mustache.js
Dado que en mustache.js no hay if statements
, ¿cómo puedo cambiar este código para usar 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>
<% } %>
Mi solución es:
{{#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}}
funciona para variables totales, ya que podría ser 0 o más, pero no tengo ni idea de lo que es la mejor manera de fijarla en la variable restante, que podría ser 1 o más.
<span class="word"><%= remaining == 1 ? 'item' : 'items' %></span> left.</span>
Debe ser algo así:
<span class="word">
{{#remaining}} 'items' {{/remaining}}
{{^remaining}} 'item' {{/remaining}}
</span>
No funciona porque restante podría ser de 1 o más.
De acuerdo con la documentación de '' Handlebars' si statements' funciona de esta manera: Si su argumento devuelve falso, no definido, nula o [] (un valor "Falsy") , 'Handlebars' no representará el bloque. Pero esto es equivalente a hacer '{{#total}}' y '{{^ total}}' en bigote. – underscore666