2013-04-29 73 views
1

我有兩個「主模板」叫ios.jadeandroid.jade加多個「子模板」應該延長要麼ios.jadeandroid.jade基於變量的值。不幸的是,我找不到一種方法來做到這一點。玉:如何基於的價值擴展基礎的模板變量

喜歡的東西下面就來我的腦海裏,但它不工作:

if (locals.os === "android") 
    extends android 
else 
    extends ios 

有什麼建議?

回答

0

我剛剛找到一種方法來動態決定在「主模板」中包含哪個「子模板」。讓我們asume我的 「主模板」 看起來是這樣的(保存爲main.jade):

html 
    head 
    meta(charset='utf8') 
    base(href='/') 
    title My super cool website 
body 
    if(locals.os === "android") 
    include android 
    else 
    include ios 

我的其他文件是android.jade

p android 

...和ios.jade

p ios 

現在只需在你的Node.js-Express服務器上渲染「master-template」並看到奇蹟的發生(請記住下面的代碼不完整,你需要設置服務器的fir t):

app.get('/', function(req, res) { 
    res.render('main', {locals:{os: 'android'}}); 
}); 
+0

這允許給定的佈局根據變量呈現不同的孩子。這已經可以與模板繼承(並且更簡單)。 – Darkhogg 2014-01-16 08:38:49