我已經layout.jade,其中包含#header #main #footer
的一部分,#main
包含#content
和#sidebar
,我的模板的身體去#content
如果我這樣做res.rend('template')
,expressjs:如何擴展布局
但現在有些頁面是特殊的,它只想繼承#header #main #footer
,模板體應該去#main
,我怎麼能在expressjs中做到這一點,我的模板引擎是玉。
我已經layout.jade,其中包含#header #main #footer
的一部分,#main
包含#content
和#sidebar
,我的模板的身體去#content
如果我這樣做res.rend('template')
,expressjs:如何擴展布局
但現在有些頁面是特殊的,它只想繼承#header #main #footer
,模板體應該去#main
,我怎麼能在expressjs中做到這一點,我的模板引擎是玉。
我想我會查看視圖部分並組織您的模板,以便將更改的內部部分可以換出。
如果您希望爲您只需要來電德模板與佈局的新模板佈局的值的名稱和位置提供任何視圖一個特殊的佈局模板。
res.render('page', { layout: 'mylayout' });
這將使用mylayout爲#header,#footer和其他東西渲染頁面佈局的內容。
Jade允許您替換(默認),前置或追加塊。假設比如你有一個「頭」塊,你想利用每一頁上默認腳本,你可以這樣做:
html
head
block head
script(src='/vendor/jquery.js')
script(src='/vendor/caustic.js')
body
block content
現在,假設你有你的應用程序的頁面的JavaScript的遊戲,你想一些遊戲相關的腳本以及這些默認值,你可以簡單地追加塊:
extends layout
append head
script(src='/vendor/three.js')
script(src='/game.js')
我想重用「mylayout」佈局'一樣,它包含用戶信息的鏈接和頁腳鏈接頭的一部分。 – 2011-05-25 07:49:15
@guilin然後將'layout'分成許多部分 – Raynos 2011-05-25 08:05:49