expressjs:如何扩展部分布局

时间:2011-05-25 03:33:16

标签: node.js express

我有layout.jade,其中包含#header #main #footer#main包含#content#sidebar,如果我这样做,我的模板主体会转到#content { {1}},

但是现在有些页面很特殊,只想继承res.rend('template')而模板正文应该转到#header #main #footer,我怎样才能在expressjs中执行此操作,我的模板引擎是jade。

3 个答案:

答案 0 :(得分:1)

如果您希望为任何视图设置特殊的布局模板,只需使用布局值以及新模板布局的名称和位置调用de template render。

res.render('page', { layout: 'mylayout' });

这将使用mylayout为#header,#footer和其他内容呈现页面布局的内容。

答案 1 :(得分:1)

Jade允许您替换(默认),前置或附加块。例如,假设您希望在每个页面上使用“head”块中的默认脚本,您可以这样做:

html
 head
  block head
    script(src='/vendor/jquery.js')
    script(src='/vendor/caustic.js')
 body
  block content

现在假设你有一个JavaScript游戏应用程序的页面,你想要一些游戏相关的脚本以及这些默认值,你可以简单地附加块:

 extends layout

 append head
  script(src='/vendor/three.js')
  script(src='/game.js')

答案 2 :(得分:0)

我想我会查看部分内容并整理您的模板,以便更换可以更改的内部部分。

http://expressjs.com/guide.html#view-partials