通过 Jade 模板传递变量

问题描述 投票:0回答:1

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

tmp1.jade

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

tmp2.jade

div.otherClass
  div.label
    {someLabel}
pug
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")

值得一提的是,如果您希望它们在多个模板中通用,您还可以将 mixin 放入包含中。你可以这样做:

myMixins.jade

mixin labeldiv(myLabel)
    div.otherClass
        div.label
            #{myLabel}

tmp1.jade

include myMixins
div.anyClass
    +labelDiv("the label")

Jade Syntax Docs 有一些很棒的(实时)示例来说明它是如何工作的。

© www.soinside.com 2019 - 2024. All rights reserved.