2012-01-27 116 views
1
在玉玉

模板繼承快把我逼瘋了......玉模板繼承

的問題是,我想排除的代碼模板外部大一點,然後包括它。當我這樣做,一切都得到他媽的起來:/

示例代碼:

!!!5 
html(lang="en") 
    head 
    title sample title 
    body 
    header 
     div#someDiv 
     div#someContent 
      section#main 

比方說,我要排除一切從頂部div#someContent。然後我會有

include inc/header 
      section#main 

這種方式代碼縮進出錯了,一​​切都搞亂了:/你能指出我包括模板的正確方向嗎?

在此先感謝!

回答

4

這不是模板繼承,但包括(模板繼承與塊和擴展關鍵字)。我確實嘗試了你的代碼,它對include的作用是將「section#main」插入到「div#someDiv」而不是「div#someContent」中。不知道這是否應該被認爲是一個錯誤或什麼(解析器如何知道添加的內容應該包含在包含文件的最後一項中,還是在同一級別?)。它似乎並不關心「包含」聲明中的縮進程度。

但是,如果你使用模板繼承,你可以把一個空塊在你的結尾包括:

!!!5 
html(lang="en") 
    head 
     title sample title 
    body 
     header 
      div#someDiv 
       div#someContent 
        block content 

然後你就可以追加塊的實際內容的文件:

include inc/header 
    block append content 
     section#main 

而這在DOM中顯示OK(section#main is inside div#someContent)。根據視圖的結構,使用「擴展」代替「include + block append」可能會更好。你可以檢查Jade's GitHub doc的細節。

+0

GitHub文檔的鏈接已死亡。 – sjy 2013-07-28 05:14:51

+0

現在看起來不錯。也許github在你嘗試時失敗了。 – mna 2013-07-29 15:44:14