web-dev-qa-db-fra.com

Passer des variables via des modèles Jade

Il est possible dans Jade de passer des variables d'un modèle à un autre?. Je veux faire quelque chose comme ça:

tmp1.jade

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

tmp2.jade

div.otherClass
  div.label
    {someLabel}

Merci!

23
John Miller

Les modèles inclus héritent de la portée des variables du modèle qui les a inclus, donc ce que vous recherchez se produira automatiquement pour vous.

Donc, ce qui suit fonctionnera:

tmp1.jade

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

tmp2.jade

div.otherClass
    div.label
        #{label}

Vous pouvez également utiliser des mixins pour passer des variables, ce sont comme des fonctions (vous les définissez d'abord, puis vous les appelez)

Vous pouvez donc faire ce qui suit:

tmp1.jade

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

div.anyClass
    +labelDiv("the label")

Il convient de mentionner que vous pouvez également mettre des mixins à l'intérieur des inclusions, si vous souhaitez qu'ils soient communs à plusieurs modèles. Vous pouvez faire ceci:

myMixins.jade

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

tmp1.jade

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

Les Jade Syntax Docs ont d'excellents exemples (en direct) de la façon dont tout cela fonctionne.

55
Jed Watson