2013-10-21 200 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