[英]How do you dynamically set a layout for a Jade template to extend in 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文件中的extends行也不起作用。
讓我們說玉文件在以下目錄中:
+ 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”)。 還要確保指定有效的默認布局。 在深入了解之前,請檢查這是否適用於測試頁。
一旦它工作,你可以像這樣的默認布局:
if(someImportantVar) {
res.render('home/index', { title: 'Different layout!', layout: 'shared/layoutB' });
} else {
res.render('home/index', { title: 'Default layout!'});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.