关于javascript:if语句使用underscore.js

if statements with underscore.js

[注:这个问题非常相似,但不完全相同。]

我正在尝试使用下划线模板执行if语句。我已经尝试过:

1
<% if (_id) { %><%=_id %><% } %>

1
<% if (_id) { _id } %>

1
<% if (_id) { <%= _id %> } %>

还有其他一些组合,但我总是会出错

ReferenceError: _id is not defined

有什么建议吗?


我不知道您的代码是什么,但是_id显然是一个标识符。但问题是,您没有定义_id

至于建议,我可能建议您定义它或使用定义的那个。很难在零语境下给你一个更好的建议。

编辑:你可能想用if(typeof _id != 'undefined')代替。


有点老,但这就是我解决类似问题的方法:

在您的模型中:

1
2
3
4
5
6
7
var Model = Backbone.Model.extend({

    defaults: {
        field1: null
    }

});

然后在模板中可以执行以下操作:

1
2
3
4
5
<% if (field1) { %>
    ...
<% } else { %>
    ...
<% } %>