Jade模板似乎没有从Express获取数据

时间:2015-02-10 03:36:51

标签: node.js express pug

在get处理程序中,我从我的数据源创建了一个对象plans。然后我做:

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

打印:

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

这意味着此对象正在传递到模板中。在dashboard Jade模板中,我有:

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

这永远不会出现。模板的上下文中未定义plans。我错过了什么?

P.S。我尝试使用res.render('dashboard', {data: plans});并将模板中的plans替换为data.plans。仍然无效。

1 个答案:

答案 0 :(得分: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