expressjs:如何扩展部分布局
我有layout.jade,其中包含#header #main #footer
,并且#main
包含#content
和#sidebar
code>,如果我执行 res.rend('template')
,我的模板正文就会转到 #content
,
但现在有些页面很特殊,只想继承 #header #main #footer
和模板主体应该转到 #main
,我怎样才能在expressjs中做到这一点,我的模板引擎是jade。
I have layout.jade, which contains #header #main #footer
, and #main
contains #content
and #sidebar
, my template body goes to #content
if I do res.rend('template')
,
but now some page is special, which only want to inherit #header #main #footer
and template body should goes to #main
, how can I do this in expressjs, my template engine is jade.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Jade 允许您替换(默认)、前置或附加块。例如,假设您希望在每个页面上使用的“head”块中都有默认脚本,您可以这样做:
现在假设您的应用程序中有一个用于 JavaScript 游戏的页面,您需要一些与游戏相关的脚本以及这些默认值,您可以简单地附加块:
Jade allows you to replace (default), prepend, or append blocks. Suppose for example you have default scripts in a "head" block that you wish to utilize on every page, you might do this:
Now suppose you have a page of your application for a JavaScript game, you want some game related scripts as well as these defaults, you can simply append the block:
如果您希望为任何视图使用特殊的布局模板,您只需使用布局值以及新模板布局的名称和位置调用 de template render 即可。
这将使用 mylayout 渲染 #header、#footer 和其他内容的页面布局内容。
If you wish to have a special layout template for any view you just need to call de template render with the value of layout and the name and location of your new template layout.
This will render the content of page layout with mylayout for the #header, #footer and other stuff.
我想我会研究视图部分并组织您的模板,以便可以更换将要更改的内部部分。
http://expressjs.com/guide.html#view-partials
I think I'd look into view partials and organize your template so that the inner parts that will change can be swapped out.
http://expressjs.com/guide.html#view-partials