下划线.js中if语句的字符串连接

时间:2016-03-04 23:50:29

标签: javascript backbone.js underscore.js underscore.js-templating

我需要修改使用backbone.js的其他人的代码。这是代码:

<%= item.title %> if (<%= item.year %>){(<%= item.year %>)} 

如何在此代码中添加if语句,例如:

var titleMovieTmpl = _.template('<h4 style="display: inline-block;"><%= item.title %>' <% if (item.year) { %> + '(<%= item.year %>)'<% } %> + '</h4><a href="javascript:void(0)" class="view-item">view title</a>');

到目前为止,我现在有:

unexpected token %

但这会在java.lang.NullPointerException: at com.google.api.client.json.webtoken.JsonWebSignature$Parser.parse(JsonWebSignature.java:462) at com.google.api.client.googleapis.auth.oauth2.GoogleIdToken.parse(GoogleIdToken.java:57) at com.google.api.client.googleapis.auth.oauth2.GoogleTokenResponse.parseIdToken(GoogleTokenResponse.java:106) 上给出语法错误。上面的问题是什么?

2 个答案:

答案 0 :(得分:2)

在我看来,将模板保持分离会更加可读,因为它变得更加复杂。它将解决您的引用/连接问题,您的IDE或编辑器也应该能够更好地处理它。

<script type='template' id='titleMovieTemplate'>
   <h4 style="display: inline-block;">
      <%= item.title %> 
      <% if (item.year) { %>
        (<%= item.year %>)
      <% } %>
   </h4>
</script>

之后,您可以在脚本中执行以下操作:

var titleMovieTmpl = _.template(document.getElementById('titleMovieTemplate').innerHTML);

答案 1 :(得分:1)

<% if (item.year) { %> 
  (<%= item.year %>) 
<% } %>