如何在 Jade 中链接包含?

How to chain includes in Jade?

我在 node.js Express 中使用 Jade 模板引擎。如果我们希望在一个 Jade 文件中包含另一个 Jade 文件,我们可以这样做:

exports.overview = function(req, res, next) { 
  var jade = require('jade');
  res.render('A', {
     main: jade.renderFile('./views/B.jade')
  });
};

我的问题是:如果我们希望将包含链接到 2 个以上的文件怎么办?假设 A.jade 包含 B.jade,后者又包含 C.jade。我在想我们可以做到这一点:

exports.overview = function(req, res, next) { 
  var jade = require('jade');
  res.render('A', {
     main: jade.renderFile('./views/B.jade',{
        carousel: jade.renderFile('./views/C.jade')
     })
  });
};

显然这行不通。我们应该怎么做?

不要忘记,您也可以直接在 Jade 文件中包含,或者简单地在 Jade 格式的包含字符串上使用 jade.render(例如 includes.jade 的以下内容)。似乎没有充分的理由像您在示例中那样进行递归包含。只需在 Jade 文件本身中根据需要添加 include。

类似于:

exports.overview = function(req, res, next) { 
  var jade = require('jade');
  res.render('A', {
     main: jade.renderFile('./views/includes.jade')
  });
};

includes.jade

include ./views/B.jade
include ./views/C.jade
include ./views/D.jade
include ./views/E.jade

或者,您也可以使用 for 循环。