5

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以上になる可能性があるため、機能しません。

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 に答える