如何在underscore.js模板中使用if语句?

我使用的是underscore.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 is not defined 。 那么,如何在模板中声明我怎么办?


这应该可以做到这一点:

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

请记住,在underscore.js模板中, iffor只是包装在<% %>标记中的标准JavaScript语法。


如果你更喜欢更短的else语句,你可以使用这个简写:

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

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


根据情况和或您的风格,您可能还想在<% %>标签内使用打印,因为它允许直接输出。 喜欢:

<% if (typeof(id) != "undefined") {
     print(id);
}
else {
    print('new Model');
} %>

对于具有一些串联的原始片段:

<% if (typeof(date) != "undefined") {
    print('<span class="date">' + date + '</span>');
} %>
链接地址: http://www.djcxy.com/p/72067.html

上一篇: How to use if statements in underscore.js templates?

下一篇: debugging underscore.js templates is difficult without line numbers