Tôi muốn thay đổi từ underscore template
thành mustache.js
.từ mẫu gạch dưới đến mustache.js
Vì trong mustache.js không có if statements
làm cách nào để thay đổi đoạn mã này để sử dụng 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>
<% } %>
giải pháp của tôi là:
{{#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}}
Nó hoạt động cho tổng biến, bởi vì nó có thể là 0 hoặc nhiều hơn, nhưng tôi không có ý tưởng cách tốt nhất để sửa chữa nó trên biến còn lại, là những gì mà có thể là 1 hoặc nhiều hơn.
<span class="word"><%= remaining == 1 ? 'item' : 'items' %></span> left.</span>
Nó phải là một cái gì đó như thế:
<span class="word">
{{#remaining}} 'items' {{/remaining}}
{{^remaining}} 'item' {{/remaining}}
</span>
Nó không làm việc vì còn lại có thể là 1 hoặc nhiều hơn.
Theo tài liệu 'Handlebars' hoạt động theo cách này: Nếu đối số của nó trả về giá trị false, undefined, null hoặc [] (a" falsy ") , 'Handlebars' sẽ không hiển thị khối. Nhưng điều này tương đương với việc tạo ra '{{#total}}' và '{{^ total}}' trong bộ ria mép. – underscore666