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

时间:2017-03-01 16:44:28

标签: javascript underscore.js

我目前正在使用clndr.js日历和underscore.js模板。

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

<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>

1 个答案:

答案 0 :(得分:1)

它在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>