通过Jade模板传递变量

时间:2013-10-25 11:33:10

标签: pug

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

tmp1.jade

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

tmp2.jade

div.otherClass
  div.label
    {someLabel}

谢谢!

1 个答案:

答案 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有一些很好的(现场)示例,说明它是如何运作的。