Underscore.js - 模板中的条件

时间:2013-11-16 13:12:18

标签: backbone.js underscore.js

我有这个字段的模型:

  • ID
  • 标题
  • URL

我想在标题为空时显示网址。为此,我写道:

<%= if(feed.get('title') == ''){ %>
    <%= feed.get('url') %>
<%= }else{ %>
    <%= feed.get('title') %>
<%= } %>

但我收到了错误。

我怎么能这样做?

3 个答案:

答案 0 :(得分:3)

这是因为你的语法错了。

<%= %>将内容输出到您的页面。

如果要执行javascript代码,请使用<% %>。 如果您想要转义HTML,请使用<%- %>

所以你的代码应该是

<% if(feed.get('title') == '' %>
    <%= feed.get('url') %>
<% }else{ %>
    <%= feed.get('title') %>
<% } %>

答案 1 :(得分:1)

<% if (feed.get('title') === '') { %>
    <%= feed.get('url'); %>
<% } else { %>
    <%= feed.get('title'); %>
<% } %>

来自下划线来源:

evaluate    : /<%([\s\S]+?)%>/g,
interpolate : /<%=([\s\S]+?)%>/g,
escape      : /<%-([\s\S]+?)%>/g

答案 2 :(得分:1)

在练习下划线的模板时,这可能会有所帮助,这是一个简单的Underscore Template Editor