由于我将下划线模板与 ruby 一起使用,因此我想更改<% %>
ruby 和下划线模板都使用的默认标签,因此我将下划线设置为使用其他标签,如下所示:
<script>
_.templateSettings = {
interpolate: /\[\=(.+?)\]/g,
evaluate: /\[(.+?)\]/g
};
</script>
所以我的模板并没有那么复杂:
<script type="text/html" id='table_list_rows_template'>
[
_.each(items,function(obj,key){
var median = obj.md.toFixed(4)
]
<tr>
<td>[= key + 1]</td>
<td>[= obj.name]</td>
<td>[= median]</td>
</tr>
[ }); ]
因此,当我尝试从这样的模板渲染 html 时(tuples
是对象列表并且我的表有 id table_list
):
<script>
$(document).ready(function(){
var template = $("#table_list_rows_template").html();
$("#table_list tbody").html(_.template(template,{items:tuples}));
});
</script>
</script>
所以我收到以下错误:
Uncaught SyntaxError: Unexpected token )
它应该在这条线上:
$("#table_list tbody").html(_.template(template,{items:tuples}));
但我无法发现错误。我的代码有什么问题?
更新 :
我试图从 [] 更改为<? ?>
喜欢 php 样式,因为第一个提醒了 javascript 数组,所以我认为这可能会导致问题。见下文 :
_.templateSettings = {
interpolate: /<\?\=(.+?)\?>/g,
evaluate: /<\?(.+?)\?>/g
};
<script type="text/html" id='table_list_rows_template'>
<?
_.each(items,function(obj,key, list){
?>
<tr id='response_[= obj.id]'>
<td></td>
<td><?= obj.name ?></td>
</tr>
<? }); ?>
</script>
没有区别同样的错误。