下划线模板无法访问变量

时间:2013-12-02 23:21:36

标签: javascript underscore.js

我有一个看起来像这样的结构:

var results = (
    0: array(1,2,3),
    1: array(2,3,4)
)

我想使用underscore.js模板将result [0]result [1]放在像这样的表中

<table id="results">
   <tr>
      <td>
         1
      </td>
      <td>
         2
      </td>
      <td>
         3
      </td>
   </tr>
   <tr>
      <td>
         2
      </td>
      <td>
         3 
      </td>
      <td>
         4
      </td>
   </tr>
</table>

使用

var list = "<% _.each(results, function(val) { %> <tr><% val.forEach(function(val1){ %> <td><%= val1 %></td>  <% }); %></tr> <% }); %>";
console.log(_.template(list, results));

但是我收到results is not defined的错误。即使我在下划线代码之前暂停调试器并检查结果的值,我也可以看到我的数组数组。这里出了什么问题?

1 个答案:

答案 0 :(得分:3)

Underscore不知道你的变量被称为结果,你需要传递一个变量的对象,如下所示:

_.template(list, { results: results });