2012-01-27 141 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