【问题标题】:Nested Jade template black with嵌套翡翠模板黑色与
【发布时间】:2013-10-21 20:58:33
【问题描述】:

我在 Jade 中遇到嵌套继承问题。可能有比我目前正在尝试的更好的方法来处理它。

我的文件结构如下:

views
 |
 |-index.jade
 |-layout.jade
 |-login.jade

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

html
  body
    block content

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

extends layout

block content
    .page-container
    .page-login
       block login
    .page-footer

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

extends index

block login
    welcome #{user} <do some logic here>

我是这样渲染的:

res.render('index', { title: 'Welcome Home', user: 'Guest#342' });

登录块中没有显示任何内容。我已经用谷歌搜索了一个小时,但找不到任何有关嵌套模板块的文档或示例。更具体地说,将变量向下传递给子模板。

我猜这是不可能的。我错过了什么还是有更好的方法来做到这一点?

【问题讨论】:

    标签: node.js express pug


    【解决方案1】:

    为什么不将 login.jade 包含在 index.jade 中?会更好的。

    【讨论】:

    • 我最终将布局更改为更扁平的设计,就像您建议的那样。
    • 酷!事实上,我通常有一个 layout.jade,还有一些页面,比如 index.jade、article 等,其中包含很多。而且效果很好。
    【解决方案2】:

    由于login 扩展了index,你应该渲染login

    res.render('login', { ... });
    

    【讨论】:

    • 是的,我想过这样做,但是我设置它的方式,我想使用多个嵌套块,所以如果我渲染登录,那么我将无法看到其他子页面上的块。我意识到我使用模板继承的方式并不是它设计使用的方式。最后,我将布局更改为更平坦,就像上面@David 建议的那样。
    • @Boso 如果是这样的话,包括块更有意义:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    • 2012-04-23
    • 1970-01-01
    • 2014-01-22
    • 2016-12-25
    • 2013-05-19
    • 1970-01-01
    相关资源
    最近更新 更多