2013-10-21 254 views
1

我在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' }); 

什么也不表示在登录块起来。我一直在Google上搜索一个小时,但找不到有关嵌套模板块的任何文档或示例。更具体地说,将变量传递给子模板。

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

回答

1

你为什么不包括你的login.jade到您的index.jade?它会更好。

+1

我最终改变了我的布局,以更平坦的设计,很像你的建议。 – Boso

+0

酷!实际上,我通常有一个layout.jade,还有一些页面,比如index.jade,文章等等,其中包含很多内容。它的工作很棒。 –

1

由于login延伸index,你应该呈现login

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

是的,我想过这样做,但是我设置了它的方式,我想使用多个嵌套块,所以如果我呈现登录,那么我将无法看到页面上的其他子块。我正在意识到我使用模板继承的方式并不是它设计使用的方式。最后,我改变了我的布局,使之更加平坦,就像@David上面所建议的那样。 – Boso

+1

@Boso如果是这样的话,包括块更有意义:) – robertklep