在Underscore.js / Backbone.js模板中使用IF语句

时间:2012-07-12 13:58:02

标签: javascript jquery backbone.js underscore.js

我收到一个JSON对象,其中一个值为null。 JSON看起来像:

[{"id":"1096","price":null,

现在,它正在使用以下代码向网页输出NULL字符串。 (我在Backbone.js / Underscore.js中使用模板引擎)

<div class="subtitle">$<%= price %></div>

因为如果没有返回div我想要隐藏整个price,我添加了if语句:

<% if (price) { %>
    <div class="subtitle">$<%= price %></div>
<% } %>

然而它似乎仍然输出div.subtitle。我究竟做错了什么?我也试过以下但是没有用

<% if (typeof(price) != "undefined") { %>
    <div class="subtitle">$<%= price %></div>
<% } %>

<% if (price != null) { %>
    <div class="subtitle">$<%= price %></div>
<% } %>

<% if (price != "null") { %>
    <div class="subtitle">$<%= price %></div>
<% } %>

我怀疑这与在Underscore.js模板中使用if语句有关

3 个答案:

答案 0 :(得分:4)

呃,你不想要(没有感叹号)

<% if (price) { %>
    <div class="subtitle">$<%= price %></div>
<% } %>

因为你现在说如果没有价格,那就显示价格......这没有任何意义。

答案 1 :(得分:2)

null不是undefined

如果你的json-object被正确解码,那么检查(price)(price != null)应该没问题。

答案 2 :(得分:1)

不应该是==(在这种情况下为!==)进行比较

<% if (price !== null) { %>
    <div class="subtitle">$<%= price %></div>
<% } %>

例如,查看此Jsbin.com行的警告