【问题标题】:Set page title from a child template in Jade从 Jade 中的子模板设置页面标题
【发布时间】:2013-03-20 11:53:30
【问题描述】:

我想通过jade在布局的子模板中设置我的页面标题。我不想在路由中设置它们,因为这需要重新启动服务器。这是我希望实现的目标:

layout.jade:

!!! 5
  head
    - var title = title || "Default Title Here"
    title #{title}
    // ...

child.jade:

- var title = "Child Title Here"
extends layout
// ...

任何关于我如何做到这一点的想法都会有很大帮助。

谢谢!

【问题讨论】:

    标签: node.js express pug


    【解决方案1】:

    来自https://github.com/visionmedia/jade/issues/654#issuecomment-5859502

    layout.jade

    block variables
    !!! 5
    head
     - var title = title || "Default Title Here"
     title #{title}
    

    child.jade:

    block variables
      title = "ST"
    extends layout
    

    【讨论】:

    【解决方案2】:

    我最终得到了一个非常简单的逻辑,因为上述答案对我不起作用:

    layout.jade

    block head
      - var theTitle = titleVar ? titleVar : "This title was set from The Layout!"
    title #{theTitle}
    

    child.jade:

    extends layout
    block head
       - var titleVar = "This title was set from the child!"
    

    在此解决方案中,布局将检查是否存在名为 titleVar 的变量:如果确实存在(并且不等于 0),则布局使用 titleVar 的值设置为标题,否则,预定义的标题(在我们的案例:"This title was set from the Layout!") 来自布局文件。自己试试,评论//子模板中titleVar的定义,看看结果。
    我希望这个解决方案可以帮助其他人:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      • 1970-01-01
      • 2015-10-05
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      相关资源
      最近更新 更多