Jade / Pug - 扩展布局 - 变量无法识别

时间:2016-11-02 14:12:07

标签: html node.js pug template-engine

我正在使用Jade / Pug来简化我的HTML,并且我尝试使用元数据创建一个块。当我在索引文件中扩展布局时,我似乎无法用 desc 变量替换#{desc}

我做错了吗?

布局:

doctype
html
  head
    block title
        title variables
        meta(name='description' content='#{desc}')
  body
    p hello

索引:

extends includes/layout
block title
    title things
    - var desc="hello"

在查看源代码时,不会输出元

2 个答案:

答案 0 :(得分:4)

Jade / Pug不会合并块或它们的范围,这就是您在此处所期待的。它只能替换,附加或前置

s3Bucket.deleteObject({ Bucket: 'assets.memori.my', Key: key }, function(err,data){ console.log(data); res.end(); }) 中的block覆盖index.pug中的默认内容。 <{1}}永远不会被使用。

我的建议是定义并使用layout.pug,或者尝试在块的范围之外声明你的变量。

var desc = 'hello'

答案 1 :(得分:4)

制作了一系列修复措施。

<强> layout.pug

- var desc = 'default meta desc'
block variables
doctype
html
  head
    block title
      meta(name='description' content=desc)
  body
    p hello

<强> index.pug

extends includes/layout
block variables
  - desc = "hello"
block append title
  title things
  • 使用block append代替block作为标题
  • 将变量放入布局中并在页面中覆盖它们
  • 直接引用desc而不使用插值语法