Underscore.js 将 if/else 添加到每个函数

Underscore.js adding if/else to each function

我目前正在使用 clndr.js calendar and underscore.js 模板。

寻求一些帮助在下划线 <% _.each 函数中实现 if/else 语句。

<div class="days">
    <% _.each(days, function(day) { %>
    <div class="event <%= day.classes %>" id="<%= day.id %>">
        <div class="number"><%= day.day %></div>
        <% _.each(day.events, function(event){ %>
             <div class="event <%= event.val %>"></div>
        <% }) %>
    </div>
    <% }); %>
</div>

目前日历中有活动的每一天都会显示 <div class="event <%= event.val %>"></div>,这很好。但是,我还想为不存在事件的日子添加 div:

<div class="days">
    <% _.each(days, function(day) { %>
    <div class="<%= day.classes %>" id="<%= day.id %>">
        <div class="number"><%= day.day %></div>
        <% _.each(day.events, function(event){ %>

             # if the event exists, show this div
             <div class="event <%= event.val %>"></div>

             # else if the event does not exist, show this div:
             <div class="event none"></div>
        <% }) %>
    </div>
    <% }); %>
</div>

它在 each 回调中这一事实并没有改变任何事情。 Underscore's template可以直接用JavaScript。

<% if (event && event.val) { %>
    <div class="event <%= event.val %>"></div>
<% } else { %>
    <div class="event none"></div>
<% } %>

或者因为你的例子很简单,以下就足够了。

<div class="event <%= event.val || 'none' %>"></div>