You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PUG模板继承中父局部变量更新与Express传值有效性咨询

PUG模板与Express传值相关问题解答

问题1:在PUG模板中,能否更新父模板的局部变量(locals)并通过extends继承机制在子模板中使用?

可以实现,核心逻辑是PUG的模板继承会共享同一个locals上下文:

  • 父模板的局部变量会自动传递给子模板,子模板可直接使用
  • 子模板中通过- var xxx = ...定义的变量,会进入全局上下文,父模板同样能访问
  • 若子模板定义了和父模板同名的变量,会覆盖父模板的原有变量值

问题2:使用res.render('page-a',{title:'Some Title'})是否会同步更新layout.pug中#{title}的插值内容?

会同步更新。Express通过res.render传入的局部变量会被整个模板继承链共享,layout.pug作为被page-a.pug继承的父模板,完全可以读取到title变量。最终渲染后的页面头部标题会变成My Site - Some Title,同时page-a.pug中的h1= title也会渲染为Some Title。

相关模板代码

//- layout.pug
html
  head
    title My Site - #{title}
    block scripts
      script(src='/jquery.js')
  body
    block content
    block foot
      #footer
        p some footer content

//- page-a.pug
extends layout.pug

block scripts
  script(src='/jquery.js')
  script(src='/pets.js')

block content
  h1= title
  - var pets = ['cat', 'dog']
  each petName in pets
    include pet.pug

Express传值代码

res.render('page-a',{title:'Some Title'})  //Will this update head title in layout.pug as well?

内容的提问来源于stack exchange,提问作者Buddy Li

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 15:48:30