我想从underscore template
更改为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或更多。
答案 0 :(得分:3)
在你看来,你可以做这样的事情:
Mustache.render(yourTemplate, {
remaining: items.length > 1 ? true : false
}
答案 1 :(得分:2)
如果您只是转向新的模板框架,我建议您使用handlebars.js。这支持if语句如下:
{{#if total}}
<span>something</span>
{{else}}
<span>something else</span>
{{/if}}