2013-10-25 15 views
22

Es ist in Jade möglich, Variablen von einer Vorlage an eine andere zu übergeben ?. möchte ich so etwas wie dies zu tun:Variablen über Jade-Vorlagen übergeben

tmp1.jade

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

tmp2.jade

div.otherClass 
    div.label 
    {someLabel} 

Dank!

Antwort

51

Enthaltene Vorlagen erben den Variablenbereich der Vorlage, in der sie enthalten sind. Das, wonach Sie suchen, wird automatisch für Sie geschehen.

So werden folgende Arbeiten:

tmp1.jade

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

tmp2.jade

div.otherClass 
    div.label 
     #{label} 

Sie auch Mixins verwenden können Variablen übergeben, sie sind wie Funktionen (Sie definieren sie zuerst, dann rufen Sie sie)

So könnte man wie folgt vorgehen:

tmp1.jade

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

div.anyClass 
    +labelDiv("the label") 

Es ist erwähnenswert, dass Sie auch Mixins innen umfasst setzen können, wenn Sie wollen, über mehrere Vorlagen gemeinsam sein. Sie können dies tun:

myMixins.jade

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

tmp1.jade

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

Die Jade Syntax Docs haben einige große (live) Beispiele dafür, wie das alles funktioniert.