2013-12-02 4 views
0

У меня есть структура, которая выглядит следующим образом:шаблона подчеркивания не может получить доступ к переменным

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 однако. Хотя, если при приостановке отладчика перед символом подчеркивания и проверке значения результатов, я могу увидеть массив массивов. Что здесь происходит?

ответ

3

Подчеркивание не знает, что переменная называется результат, вы должны передать ему объект ваших переменных следующим образом:

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

спасибо. но теперь я получаю «Объект 1 не имеет метода« forEach ». Могу ли я как-то вернуть эту функциональность? – 1252748

+0

Так выглядит ли ваша переменная 'results'' [[1,2,3], [2,3,4]] '? Потому что это работает для меня. – forivall

+0

Я получил это, спасибо! – 1252748

Смежные вопросы