簡體   English   中英

如何動態設置Jade模板的布局以擴展Node.js / Express 3.0?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM