我想從underscore template
更改爲mustache.js
。從下劃線模板到mustache.js
既然在mustache.js中沒有if statements
我該如何更改這段代碼才能使用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>
<% } %>
我的解決辦法是:
{{#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}}
它適用於總變量,因爲它可能是0或更多,但我不知道什麼是解決它的剩餘變量,最好的辦法,其可以是1或更多。
<span class="word"><%= remaining == 1 ? 'item' : 'items' %></span> left.</span>
它應該是這樣的:
<span class="word">
{{#remaining}} 'items' {{/remaining}}
{{^remaining}} 'item' {{/remaining}}
</span>
它不工作,因爲剩下的可能是1或更多。
根據'Handlebars'文檔'if語句'以這種方式工作:如果它的參數返回false,undefined,null或[](一個「falsy」值) ,「把手」不會渲染該塊。但這相當於在小鬍子中設置了「{{#total}}」和「{{^ total}}」。 – underscore666 2012-04-14 08:12:44