2013-10-25 198 views
22

Jade有可能將變量從一個模板傳遞到另一個模板? 我想要做這樣的事情:通過Jade模板傳遞變量

tmp1.jade

div.anyClass 
    include components/checkbox('someLabel') 

tmp2.jade

div.otherClass 
    div.label 
    {someLabel} 

謝謝!

回答

51

包含的模板繼承了包含它們的模板的變量範圍,所以您將會自動爲您執行後續操作。

所以下面的工作:

tmp1.jade

- var label = 'value' 
div.anyClass 
    include tmp2 

tmp2.jade

div.otherClass 
    div.label 
     #{label} 

您也可以使用混入傳遞變量,它們就像功能(你先定義它們,然後給它們打電話)

所以,你可以做到以下幾點:

tmp1.jade

mixin labeldiv(myLabel) 
    div.otherClass 
     div.label 
      #{myLabel} 

div.anyClass 
    +labelDiv("the label") 

值得一提的是,你還可以把混入裏面包括,如果你想讓他們在多個模板是共同的。你可以這樣做:

myMixins.jade

mixin labeldiv(myLabel) 
    div.otherClass 
     div.label 
      #{myLabel} 

tmp1.jade

include myMixins 
div.anyClass 
    +labelDiv("the label") 

Jade Syntax Docs有它是如何工作的一些偉大的(活)的例子。