我在尝试解析下划线模板时遇到错误,该模板存储为多行字符串:
{{ _.each(records, function(record, index) { }}\
<tr>\
{{ record.get("hours") }}\
</tr>\
{{ }) }}\
错误:
Uncaught SyntaxError:意外的令牌)
第1行(_.each行)。
根据下划线的docs,语法对我来说是正确的。
编辑:我应该注意,我在我的模板中使用{{而不是&lt;%=并且更改回&lt;%=不能解决问题。
编辑:这是我用于评估的正则表达式:
// Underscore templates should use {{ variable_name }} instead of <%= variable_name =%>
_.templateSettings = {
interpolate: /\{\{(.+?)\}\}/g
};
答案 0 :(得分:4)
您需要使用{[
进行评估。
假设您首先defined a regex更改underscore.js用于评估的默认符号,例如
_.templateSettings = {
evaluate: /\{\[([\s\S]+?)\]\}/g,
interpolate: /\{\{([\s\S]+?)\}\}/g,
escape: /\{\{-([\s\S]+?)\}\}/g
};
然后您可以执行类似
的操作{[ _.each(records, function(record, index) { ]}
<tr>
{{ record.get("hours") }}
</tr>
{[ },this); ]}