Jade部分继承块/扩展实现

时间:2012-10-10 17:36:18

标签: javascript node.js template-engine pug

我一直在实践中在我的应用程序中使用部分内容已经有一段时间跨越了许多不同的框架;我对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

这适用于少数用例,您只是在提供页面并且正在寻找提供布局的标准方法。然而偏离这一点,并以更多的模块方式使用partial来干涸事情,你发现extend / block的这种实现让我摸不着头脑。我想将我的工具提示分解为部分以便在数据网格中重复使用(当然将一些变量传递给部分,所以忘记包含),这个实现禁止我具备这种能力。任何人都可以为我提供进一步的见解,纠正我的用法,或指导我使用更好的NodeJs模板库,它将与Express 3配合使用

2 个答案:

答案 0 :(得分:1)

mixins之类的声音可能会对您有所帮助。

答案 1 :(得分:0)

截至2012年8月和Express 3,“部分”支持已被删除,但功能仍可通过“include [yourtemplatename]”表达式获得,不带引号或括号。

我发现有用的Jade替代方法是EJS模板,它比ASP.NET / JSTL更像。

编辑:在这两种情况下,包含都可以访问父上下文和可用的变量。