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){…}
wherevariable
可能是未定义的您可能引用对象属性(if(a.b)
)或函数参数。我认为在这些情况下效果更好。
var Model = Backbone.Model.extend({
defaults: {
field1: null
}
});
<% if (field1) { %>
...
<% } else { %>
...
<% } %>