24

在 Jade 中可以将变量从一个模板传递到另一个模板吗?我想做这样的事情:

tmp1.jade

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

tmp2.jade

div.otherClass
  div.label
    {someLabel}

谢谢!

4

1 回答 1

59

包含的模板继承了包含它们的模板的变量范围,因此您所追求的将自动为您发生。

所以以下将起作用:

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有一些很好的(现场)例子来说明它是如何工作的。

于 2013-12-03T05:09:56.660 回答