从扩展的pug / jade模板将变量传递给基本布局

时间:2015-03-17 01:35:24

标签: javascript node.js pug

我想通过在扩展基本布局的模板中声明一个变量来在body标签上设置一个类。

当我尝试时,body_class变量在布局中为undefined

布局似乎在扩展模板之前执行,或者它们在不同的范围内执行。

还有其他方法吗? mixin能在这里工作吗?

_layout.jade:

doctype html
html(lang="en-au")
    head
        meta(charset="utf-8")
        block css
    body(class=(body_class || "it-did-not-work"))
        block header
        block content
        block footer

home.jade:

var body_class = 'i-am-the-home-page'
extends _layout
block header
    h1 home

1 个答案:

答案 0 :(得分:55)

啊哈哈!想出来了。

在基本布局的顶部创建一个块,并在其中添加变量。

<强> _layout.jade:

block variables
doctype html
html(lang="en-au")
    head
        meta(charset="utf-8")
        block css
    body(class=(body_class || "it-did-not-work"))
        block header
        block content
        block footer

<强> home.jade:

extends _layout
block variables
    - var body_class = 'i-am-the-home-page'
block header
    h1 home