underscore.js 中 if 语句的字符串连接
String concatenation on if statement in underscore.js
我需要修改正在使用 backbone.js 的其他人的代码。这是代码:
var titleMovieTmpl = _.template('
<h4 style="display: inline-block;">
<%= item.title %> (<%= item.year %>)
</h4>');
如何向此代码添加 if 语句,例如:
<%= item.title %> if (<%= item.year %>){(<%= item.year %>)}
到目前为止,我现在有:
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 %
上的语法错误。以上是什么问题?
<% if (item.year) { %>
(<%= item.year %>)
<% } %>
在我看来,将模板分开会更具可读性,当然是因为它变得更复杂了。它将解决您的引用/连接问题,并且您的 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);
我需要修改正在使用 backbone.js 的其他人的代码。这是代码:
var titleMovieTmpl = _.template('
<h4 style="display: inline-block;">
<%= item.title %> (<%= item.year %>)
</h4>');
如何向此代码添加 if 语句,例如:
<%= item.title %> if (<%= item.year %>){(<%= item.year %>)}
到目前为止,我现在有:
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 %
上的语法错误。以上是什么问题?
<% if (item.year) { %>
(<%= item.year %>)
<% } %>
在我看来,将模板分开会更具可读性,当然是因为它变得更复杂了。它将解决您的引用/连接问题,并且您的 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);