当前位置: 动力学知识库 > 问答 > 编程问答 >

javascript - Pass variables to base layout from extending pug/jade template

问题描述:

I would like to set a class on the body tag by declaring a variable in a template that extends a base layout.

When I try, the body_class variable is undefined in the layout.

It appears the layout is executed before the extending template, or they are executed in different scopes or something.

Is there another way? Would a mixin work here?

_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

网友答案:

Ah ha! Figured it out.

Create a block at the top of the base layout and add your variables in there.

_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
分享给朋友:
您可能感兴趣的文章:
随机阅读: