在 Jade 中可以将变量从一个模板传递到另一个模板吗?我想做这样的事情:
tmp1.jade
div.anyClass
include components/checkbox('someLabel')
tmp2.jade
div.otherClass
div.label
{someLabel}
谢谢!
在 Jade 中可以将变量从一个模板传递到另一个模板吗?我想做这样的事情:
tmp1.jade
div.anyClass
include components/checkbox('someLabel')
tmp2.jade
div.otherClass
div.label
{someLabel}
谢谢!
包含的模板继承了包含它们的模板的变量范围,因此您所追求的将自动为您发生。
所以以下将起作用:
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有一些很好的(现场)例子来说明它是如何工作的。