【问题标题】:Pass variables to base layout from extending pug/jade template从扩展 pug/jade 模板将变量传递给基本布局
【发布时间】:2015-03-17 01:35:23
【问题描述】:

我想通过在扩展基本布局的模板中声明一个变量来在 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

【问题讨论】:

标签: javascript node.js pug


【解决方案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

【讨论】:

  • 谢谢您,先生,正是我想要的。那么范围是在被扩展的根模板上吗?
  • 这在 var 语句之前缺少一个破折号。应该是- var body_class = 'i-am-the-home-page'。否则代码将不会被编译为 JavaScript。
  • 我发现了这个,其中有如何实际实现的示例。我发现它很有帮助 - gist.github.com/viktorbezdek/9665226
  • 这应该完全包含在 Pug 的文档中。这不可能是块的明显用法。
猜你喜欢
  • 2020-04-16
  • 2017-03-15
  • 1970-01-01
  • 2016-10-28
  • 1970-01-01
  • 2017-12-13
  • 2018-02-06
  • 1970-01-01
相关资源
最近更新 更多