在Jade中设置来自子模板的页面标题
我想通过翡翠在布局的子模板中设置我的页面标题。 我不想在路由中设置它们,因为这需要重新启动服务器。 这是我希望能够实现的:
layout.jade:
!!! 5 head - var title = title || "Default Title Here" title #{title} // ...
child.jade:
- var title = "Child Title Here" extends layout // ...
任何想法,我如何能做到这一点将是一个很大的帮助。
谢谢!
从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
因为上面的答案对我不起作用,所以我以一个非常简单的逻辑结束了:
在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!"
在这个解决scheme中,布局将检查是否存在名为titleVar的variables:如果它存在(并且不等于零),则布局将使用titleVar的值作为标题,否则,预定义的标题(在我们的例子中: “ 这个标题是从布局! ”)从布局文件将发生。 自己尝试一下,并注释//
从子模板中定义titleVar,并查看结果。
我希望这个解决scheme可以帮助别人:)