5

我想从 更改underscore templatemustache.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 或更多。

4

2 回答 2

3

在你看来,你可以做这样的事情:

Mustache.render(yourTemplate, {
     remaining: items.length > 1 ? true : false
}
于 2012-04-13T13:00:02.467 回答
2

如果您只是迁移到一个新的模板框架,我建议您使用handlebars.js。这支持 if 语句,如下所示:

{{#if total}}
  <span>something</span>
{{else}}
  <span>something else</span>
{{/if}}
于 2012-04-14T07:52:16.253 回答