Подтвердить что ты не робот

Передача переменных через шаблоны Jade

Можно ли в Jade передавать переменные из одного шаблона в другой?. Я хочу сделать что-то вроде этого:

tmp1.jade

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

tmp2.jade

div.otherClass
  div.label
    {someLabel}

Спасибо!

4b9b3361

Ответ 1

Включенные шаблоны наследуют область переменных шаблона, который их включил, поэтому то, что вы после этого, будет автоматически для вас.

Итак, будет работать следующее:

tmp1.jade

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

tmp2.jade

div.otherClass
    div.label
        #{label}

Вы также можете использовать mixins для передачи переменных, они похожи на функции (вы определяете их сначала, а затем вызываете их)

Итак, вы можете сделать следующее:

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 есть отличные (живые) примеры того, как все это работает.