Templates Jade中动态包含的替代方案

Templates Jade中动态包含的替代方案,templates,dynamic,express,include,pug,Templates,Dynamic,Express,Include,Pug,尝试使用dynamic(包括使用express+jade)的替代解决方案是什么?以下是我尝试对以下设置所做的操作: 路线 index.js widgets.js 观点 小部件 widget1.jade 翡翠索引 杰德先生 app.js 在app.js中,我指定了以下路径: app.get('/widgets/:widget',widgets.widgets) 在我的widgets路径中,widgets.js我有: exports.widgets=function(req,res)

尝试使用dynamic(包括使用express+jade)的替代解决方案是什么?以下是我尝试对以下设置所做的操作:

  • 路线
    • index.js
    • widgets.js
  • 观点
    • 小部件
      • widget1.jade
    • 翡翠索引
    • 杰德先生
  • app.js
在app.js中,我指定了以下路径:

app.get('/widgets/:widget',widgets.widgets)

在我的widgets路径中,widgets.js我有:

exports.widgets=function(req,res){res.render('widgets/'+req.params.widget);}

这使我能够通过浏览/widgets/widget1单独查看小部件。这很有效。我也可以像这样在另一个视图中包含一个小部件

include widgets/widget1
这也很有效。但是,现在我想添加widget2,有时我想在另一个页面中显示widget1,有时显示widget2。我希望将变量WidgetName传递到视图中,然后像这样引用它:

include widgets/#{variableWidgetName}
这是失败的。当我尝试访问页面时,我得到一个500错误,指出不存在这样的文件或目录视图\widgets{variableWidgetName}.jade。显然,我不能为include引用变量

我还有其他选择吗。如果这是Jade中的一个限制,那么我是否应该使用不同的方法?我曾想过通过ajax加载小部件,但希望使用jade或express获得更好的解决方案


有人知道更好的方法吗?

试着使用
部分而不是包含

以下是对我有用的东西(我使用harpjs.com和jade,它使用“jade”:“0.35.0”):

-var name=“某物”
!= 部分('./'+name+'/hello.md')`

这不起作用。那到底是什么意思?有错误吗?不想要的/意外的行为?谢谢,我更新了帖子以使其更清晰。