你如何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!'}); }