Jade可以将变量从一个模板传递到另一个模板吗? 我想做这样的事情:
tmp1.jade
div.anyClass
include components/checkbox('someLabel')
tmp2.jade
div.otherClass
div.label
{someLabel}
谢谢!
答案 0 :(得分:55)
包含的模板会继承包含它们的模板的变量范围,因此您将自动为您执行的操作。
以下内容将起作用:
<强> 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")
值得一提的是,如果你希望它们在多个模板中是通用的,你也可以把mixins放在包含内。你可以这样做:
<强> myMixins.jade 强>
mixin labeldiv(myLabel)
div.otherClass
div.label
#{myLabel}
<强> tmp1.jade 强>
include myMixins
div.anyClass
+labelDiv("the label")
Jade Syntax Docs有一些很好的(现场)示例,说明它是如何运作的。