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

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

tmp1.jade

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

tmp2.jade

div.otherClass
  div.label
    {someLabel}

Спасибо!

1 ответ

Решение

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

Так что будет работать следующее:

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

Другие вопросы по тегам