2015-02-10 2 views
0

В обработчике get я создаю объект, plans, из моего источника данных. Тогда я:Jade template, похоже, не получает данные от Express

console.log(plans); 
res.render('dashboard', plans); 

Он печатает:

{ '0': 'mobile_basic', 
    '1': 'mobile_basic', 
    '2': 'landline_basic', 
    '3': 'landline_mid', 
    '4': 'internet_mid' } 

Это означает, что этот объект передается в шаблон. В шаблоне dashboard Джейд, у меня есть:

if plans 
    ul 
    each val, index in plans 
     li= index + ': ' + val 

Это никогда не показывает вверх. plans не определен в контексте шаблона. Что мне не хватает?

P.S. Я пробовал использовать res.render('dashboard', {data: plans}); и заменяю plans в шаблоне data.plans. Все еще не работает.

ответ

0

Имя переменной, содержащей ваши данные, фактически не передается через res.render() в систему просмотра. Только его значение делает.

Что посмотреть можно использовать ключи/свойства, указанные в locals:

res.render('dashboard', { plans: plans }); 
//      ^^^^^ 

Эти ключи станут локальные переменные в пределах вида.


Когда вы пытались использовать:

res.render('dashboard', { data: plans }); 

мнение может, в свою очередь используется data для доступа к коллекции из plans:

if data # <-- 
    ul 
    each val, index in data # <-- 
     li= index + ': ' + val 
+0

Я попытался это раньше, но я, вероятно, было что-то. В результате я снова попытался. Кроме того, я не знал, что имя объекта не передается. Спасибо! – Antrikshy

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