Jade 模板似乎没有从 Express 获取数据
Jade template does not seem to be getting data from Express
在 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
。还是不行。
保存数据的变量名称实际上并没有通过 res.render()
传递到视图引擎。只有它的价值。
视图可以使用的是 locals
:
中指定的 keys/properties
res.render('dashboard', { plans: plans });
// ^^^^^
这些键将成为视图中的局部变量。
当您尝试使用时:
res.render('dashboard', { data: plans });
视图可以反过来使用 data
从 plans
:
访问集合
if data # <--
ul
each val, index in data # <--
li= index + ': ' + val
在 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
。还是不行。
保存数据的变量名称实际上并没有通过 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