我有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文件中的extends行也不起作用。
最佳答案
可以说 Jade 文件位于以下目录中:
+ views
+ shared
- layoutA.jade
- layoutB.jade
+ home
- index.jade
以正确的顺序添加布局设置,并指定根 View 文件夹:
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.set('view options', { layout: 'shared/layoutA' });
确保指定正确的文件夹(在本例中为“ View ”)。另外,请确保指定有效的默认布局。在您深入研究之前,请先检查一下它是否适合测试页。
一旦工作,您就可以像这样的默认布局:
if(someImportantVar) {
res.render('home/index', { title: 'Different layout!', layout: 'shared/layoutB' });
} else {
res.render('home/index', { title: 'Default layout!'});
}