如何在下划线.js模板中使用if语句?

我正在使用下划线.js模板函数,并做了一个这样的模板:

<script type="text/template" id="gridItem">
    <div class="griditem <%= gridType %> <%= gridSize %>">
        <img src="<%= image %>" />
        <div class="content">
            <span class="subheading"><%= categoryName %></span>
            <% if (date) { %><span class="date"><%= date %></span><% }  %>
            <h2><%= title %></h2>
        </div>
    </div>
</script>

如您所见,我在那里有一个if语句,因为我的所有模型都没有date参数。但是,这种方式会给我一个错误 。那么,如何在模板中执行 if 语句呢?date is not defined


答案 1

这应该可以解决问题:

<% if (typeof(date) !== "undefined") { %>
    <span class="date"><%= date %></span>
<% } %>

请记住,在下划线中.js模板,只是包装在标签中的标准javascript语法。iffor<% %>


答案 2

如果您更喜欢较短的 if else 语句,则可以使用以下速记:

<%= typeof(id)!== 'undefined' ?  id : '' %>

这意味着如果有效,则显示 ID;如果无效,则显示空白。