Jade模板,扩展模板后添加到头部
我试图通过构build一个小型的Web应用程序来使用canvas来绘制用户数据。
目前,我只是把一个Jade模板放在一起,我扩展了以前的模板(我称之为layout.jade),其中包含几乎所有页面上使用的常规资源。
我的问题是,我想要扩展模板,然后将头部的东西只为该页面,而不是其他人。 我一直在玩它一段时间,研究,但无法find它的具体信息。
这是我的
layout.jade !!! 5 html head title EZgraph link(rel='stylesheet', href='bootstrap/css/bootstrap.min.css') link(rel='stylesheet', href='stylesheets/ezgraph.css') body block content block scripts
这是我正在处理的模板
extends layout head link(rel='stylesheet', href='stylesheets/barchartentry.css')
有没有可能做这样的事情? 直觉上,我觉得它应该是,但我只是错过了这样做的机制。
我在本周的一个屏幕video系列剧中进入了这个话题。 这里有一个链接: http : //www.learnallthenodes.com/episodes/10-more-advanced-jade 。
但是,如果你想知道答案,请继续阅读。 您可以在模板文件中使用多个块。 在你的情况下,你可能会使layout.jade看起来像这样:
layout.jade !!! 5 html head title EZgraph link(rel='stylesheet', href='bootstrap/css/bootstrap.min.css') link(rel='stylesheet', href='stylesheets/ezgraph.css') block extraHeader body block content block scripts
然后你的模板文件:
extends layout block extraHeader link(rel='stylesheet', href='stylesheets/barchartentry.css')
请注意布局和模板中匹配的extraHeader块调用。 这应该让你去。
如果您需要在同一个呈现中从多个模板文件中将内容添加到extraHeader中,则可以使用block append extraHeader
或更简洁的append extraHeader
。 如果您希望额外的内容出现在开头,还有一个prepend
变体。
编辑:修复了一些缩进。 此外,我缩进block content
和block scripts
使他们将是body
孩子。 最后,即使这个block extraHeader
将会在你的布局的每个调用中都存在,除非你的模板给出了它的内容,它不会注入任何符合你的需求的东西,据我所知。