【问题标题】:How to use multiple blocks from different files?如何使用来自不同文件的多个块?
【发布时间】:2012-08-16 07:41:44
【问题描述】:

我有一个layout.jade,看起来像这样:

html
  body
    block content
    block footer

我的content.jade 看起来像这样:

extends layout

block content
    #Content Welcome

我的footer.jade 看起来像这样:

extends layout

block footer
    #Footer Impressum

现在,当我像这样运行 app 时:

app.get('/', function(req, res) {
    res.render('layout');
});

我既看不到内容也看不到页脚。

当我跑步时:

app.get('/', function(req, res) {
    res.render('content');
});

然后我看到了内容。

当我跑步时:

app.get('/', function(req, res) {
    res.render('footer');
});

然后我看到了页脚。

如何同时查看内容和页脚?

【问题讨论】:

    标签: node.js templates express pug


    【解决方案1】:

    你可能想要这样的东西:

    layout.jade

    html
      body
        block content
        include footer
    

    pagename.jade

    extends layout
    
    block content
      h1 My Content
    

    footer.jade

    p.footer Here is my footer
    

    然后运行res.render('pagename');

    除非您想在每页的页脚中包含特定内容,否则将其设置为块是没有意义的。

    【讨论】:

    • 有道理,谢谢!我也可以用include #{page} 替换block content。并运行res.render('layout', { page: 'pagename' });?
    • 你可以,但我认为render 与你的路线相关联的页面在语义上更正确(当然,除非你有其他原因以不同的方式做事)。 [编辑] 至少,我认为可以。 :)
    • 很公平:) 我会接受你的建议。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2020-10-02
    • 2018-12-04
    • 1970-01-01
    • 2014-01-19
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多