在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
。仍然无效。
答案 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