你如何dynamic地设置一个Jade模板的布局,以在Node.js / Express 3.0中进行扩展?
我有3个文件:layoutA.jade,layoutB.jade和index.jade。 我怎样才能以编程方式设置index.jade将扩展的布局?
我试过使用:
app.set('view options', { layout: false });
有:
res.render('index', { title: 'Express', layout: 'layoutB' }); // older 2.x way?
我似乎无法重写index.jade文件中明确设置的任何东西。 忽略index.jade文件中的延长线也不起作用。
可以说,玉文件在以下目录中:
+ views + shared - layoutA.jade - layoutB.jade + home - index.jade
按照正确的顺序添加布局设置,并指定根视图文件夹:
app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.set('view options', { layout: 'shared/layoutA' });
确保你指定了正确的文件夹(在这个例子中是'views')。 另外请确保指定一个有效的默认布局。 在深入研究之前,检查一下它是否适用于testing页面。
一旦工作,你可以像这样的默认布局:
if(someImportantVar) { res.render('home/index', { title: 'Different layout!', layout: 'shared/layoutB' }); } else { res.render('home/index', { title: 'Default layout!'}); }