Javascript 带有下划线.js的if语句

Javascript 带有下划线.js的if语句,javascript,underscore.js,Javascript,Underscore.js,[注:非常相似,但不完全相同。] 我正在尝试使用下划线模板执行if语句。我试过: <% if (_id) { %><%=_id %><% } %> 及 及 还有很多其他的组合,但我总是会出错 ReferenceError:\u id未定义 有什么建议吗?我不知道你的代码是什么,但是\u id显然是一个标识符。但是,问题是您没有定义\u id 至于建议,我可能建议您定义它或使用已定义的建议。在没有上下文的情况下,很难给你一个更好的建议 编辑:您可能

[注:非常相似,但不完全相同。]

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

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



还有很多其他的组合,但我总是会出错

ReferenceError:\u id未定义


有什么建议吗?

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

至于建议,我可能建议您定义它或使用已定义的建议。在没有上下文的情况下,很难给你一个更好的建议


编辑:您可能希望使用
if(typeof _id!=“undefined”)

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

在您的模型中:

var Model = Backbone.Model.extend({

    defaults: {
        field1: null
    }

});
然后在模板中,您可以执行以下操作:

<% if (field1) { %>
    ...
<% } else { %>
    ...
<% } %>

...
...

以下是上下文。我通过传递对象属性来呈现模板。事实证明,有时
\u id
不是该对象的属性之一。在这种情况下,我只想什么都不显示,但不想显示错误。因为如果引用未定义的变量,就会在一些javascript引擎中得到未定义的错误。Aha。你能链接到关于这个的更多信息吗。因为我经常使用模式
if(variable){…}
where
variable
可能是
未定义的
您可能引用对象属性(
if(a.b)
)或函数参数。我认为在这些情况下效果更好。
var Model = Backbone.Model.extend({

    defaults: {
        field1: null
    }

});
<% if (field1) { %>
    ...
<% } else { %>
    ...
<% } %>