我一直在跨越多个不同的框架使用部分应用程序跨越我的应用程序一段时间;我对Jade的实现感到困惑,或者我的错误用法,并希望得到其他利用者的经验和对我的理解的任何更正。Jade部分继承块/扩展实现
文件夹结构:
$ cd <app_root>/views
$ ls
myHoverToolTip.jade
layout.jade
来电:
httpJadeViewerRsp = (req, res) -> res.render('myHoverToolTip.jade', { variable: 'here' })
myHoverToolTip.jade
extends layout
block myHoverToolTip
.some-div
h1 Awesome-O Rocks
layout.jade
<...bunch of jade markup...>
.div
block myHoverToolTip
h5 Content to remove
这适用于少量的用例,您只需提供一个页面并正在寻找提供布局的标准方式。然而,偏离这一点,并以更模块化的方式使用partials来干什么,你会发现这个extends/block的实现让我挠头。我希望将我的工具提示分解为一个部分,以便在数据网格中重用(当然,将部分变量传递给部分,因此不要包含这些变量),但此实现禁止我拥有此功能。任何人都可以提供进一步的见解,纠正我的用法,或指引我使用更好的NodeJs-ready模板库,它们将与Express 3配合使用
不知道您是否阅读我的文章......我遵循使用模板引擎的继承进行部分实现的Express 3指令。 Jade是我所知道的唯一一个JS模板引擎,它具有指定的任何继承。我相信这在EJS中不被支持,我错了吗?还要注意发送变量到partial的要求,如果我误解了“include”是如何呈现的(静态地),那么“include”不支持这个要求,那么请纠正我。 –
假设基于其他语言的经验,但是在这种情况下,“包含”在这些系统中不需要采取额外的步骤就可以继承父上下文,这并不是错的。我最近看到很多关于partials和vs的疑惑,因为Express和相关模板系统最近发生了变化。 – Joshua