我一直在跨越多個不同的框架使用部分應用程序跨越我的應用程序一段時間;我對Jade的實現感到困惑,或者我的錯誤用法,並希望得到其他利用者的經驗和對我的理解的任何更正。Jade部分繼承塊/擴展實現
文件夾結構:
$ cd <app_root>/views
$ ls
myHoverToolTip.jade
layout.jade
來電:
httpJadeViewerRsp = (req, res) -> res.render('myHoverToolTip.jade', { variable: 'here' })
myHoverToolTip.jade
extends layout
block myHoverToolTip
.some-div
h1 Awesome-O Rocks
layout.jade
<...bunch of jade markup...>
.div
block myHoverToolTip
h5 Content to remove
這適用於少量的用例,您只需提供一個頁面並正在尋找提供佈局的標準方式。然而,偏離這一點,並以更模塊化的方式使用partials來幹什麼,你會發現這個extends/block的實現讓我撓頭。我希望將我的工具提示分解爲一個部分,以便在數據網格中重用(當然,將部分變量傳遞給部分,因此不要包含這些變量),但此實現禁止我擁有此功能。任何人都可以提供進一步的見解,糾正我的用法,或指引我使用更好的NodeJs-ready模板庫,它們將與Express 3配合使用
不知道您是否閱讀我的文章......我遵循使用模板引擎的繼承進行部分實現的Express 3指令。 Jade是我所知道的唯一一個JS模板引擎,它具有指定的任何繼承。我相信這在EJS中不被支持,我錯了嗎?還要注意發送變量到partial的要求,如果我誤解了「include」是如何呈現的(靜態地),那麼「include」不支持這個要求,那麼請糾正我。 –
假設基於其他語言的經驗,但是在這種情況下,「包含」在這些系統中不需要採取額外的步驟就可以繼承父上下文,這並不是錯的。我最近看到很多關於partials和vs的疑惑,因爲Express和相關模板系統最近發生了變化。 – Joshua