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