我正在将underscorejs的_.template()
函数与 Backbone js一起使用。当使用underscore.js v1.3.0时,我可以使用if
语句,如下所示:
<script type="text/template" id="tpl_listing_list_item">
<% if(<%= address_2 %>){%>, <%= address_2 %><%}%>
</script>
问题:更新到v1.3.3后,我在Javascript控制台中收到错误
Uncaught SyntaxError: Unexpected token ILLEGAL
。此功能是否已删除?删除if
代码可修复该错误。如果将其删除,是否还有另一种方法可以实现相同目的? 最佳答案
在if
语句中,您已经转入插值模式,因此<%=
是非法字符。
当我在浏览器中与1.3.3一起使用时,此方法有效
<script type="text/template" id="tpl_listing_list_item">
<% if(address_2){ %>, <%= address_2 %> <% } %>
</script>
例:
var t = _.template('{% if(address_2){ %}, {{ address_2 }} {% } %}')
undefined
t({'address_2': 'test'});
", test "
(我们使用JSP,因此我们的模板标签是
{% %}
,{{ }}
和{%- %}
而不是默认标签,因此请原谅我的标签)