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

标签 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

最佳答案

啊哈!想通了。

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

_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

关于javascript - 从扩展 pug/jade 模板将变量传递给基本布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29089925/

相关文章:

javascript - 将脚本 src 传递到 Pug 模板中

javascript - 传递的函数有一个变量不起作用

node.js - 使用 playwright 抓取本地 html 文件

javascript - ReactTestUtils.Simulate.click 测试上的 Jasmine spyOn 失败

node.js - Docker AWS 证书管理器 SSL NodsJS 失败

javascript - 使用 Sails 在 express node.js 中将字符串从客户端发布到 mongoDB

javascript - 使用express js的多部分表单数据发布方法

css - PUG 和换行符

javascript - 谷歌地图容器在动画后无法正确调整大小

Javascript检查两个数组中是否存在值返回缺失值