Подтвердить что ты не робот

Передать переменные в базовый макет из расширения шаблона мопса/нефрита

Я хотел бы установить класс в теге body, объявив переменную в шаблоне, которая расширяет базовый макет.

Когда я пытаюсь, переменная body_class имеет undefined в макете.

Кажется, что макет выполняется перед расширением шаблона или выполняется в разных областях или что-то в этом роде.

Есть ли другой способ? Будет ли миксин работать здесь?

_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
4b9b3361

Ответ 1

Ага! Выяснилось.

Создайте блок в верхней части базового макета и добавьте туда переменные.

_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