快递&玉 - 最大块嵌套

时间:2013-05-19 13:50:45

标签: node.js express block pug nested

我使用Express 3x + Jade + bootstrap + .. etc

我的块/扩展结构看起来像这样

.layout.jade(只有头脑)
.topNav.jade(仅限顶级导航)
.sideNav.jade(sideNav和控制中心界面)
.slidePrem.jade(实际内容)

现在我尝试重新渲染slidePrem

- >这会渲染sidenav,topnav,layout(所以“extends”语句从slideprem中读出)

但它不会显示slidePrem的任何内容

经过多个小时的重新编码,搜索,重新发送等等 。我将结构重写为slideprem - > sidenav - >布局

- >这会渲染slideprem,sidenav,layout

- >>>那嵌套块实际上有限制吗?
- >是可编辑的吗? - >或者你想象一下其他地方的错误?

对待Pika

编辑:

//slidePrem.jade//

extends ../sideNav
block wall
    #bla (or alert or sth)


//sideNav.jade//

extends topNav
block content
#subHeader
#subHeadNav
#Content //doesnt conflict with "block content" 
    div.container
        div.row
            div.span9
                block wall
            div.span3
                                    // further code



//topNav.jade//

extends layout
block navigation
    div.topnav.....
        div...
            ...
    block content
    #modal


//layout.jade//

doctype 5
html
head
    title= title
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    link(rel='stylesheet', href='http://fonts.googleapis.com/css?family=Titillium+Web&subset=latin,latin-ext', type='text/css')
    link(rel='stylesheet', href='/bootstrap/css/bootstrap.min.css')
    link(rel='stylesheet', href='/bootstrap/css/bootstrap-responsive.min.css', media="screen")
    link(rel='stylesheet', href='/stylesheets/style.css')
    link(rel='stylesheet', href='/stylesheets/cCenter.css')

    script(src='/javascripts/jq.js')
    script(src='/bootstrap/js/bootstrap.min.js')
    script(src='/javascripts/core.js')
    script(src='/javascripts/ajax.js')
body
    block navigation

1 个答案:

答案 0 :(得分:2)

您应该尝试使用包含而不是扩展

所以你可以试试你的layout.jade:

html
  head
  (...)
  body
    block navigation

在你的navigation.jade块中

extends layout

block navigation
  .topnav (div aren't required in jade)
  (...)
  include content

您的content.jade只需要

#subHeader
#subHeadNav
#Content //doesnt conflict with "block content" 
 div.container
   div.row
      div.span9
        include wall
      div.span3

如果不够清楚,您可以在项目的GitHub页面上找到所有include documentation

我希望它会有所帮助。