Как да включите веригата в Jade?

Използвам шаблонния механизъм Jade в node.js Express. Ако искаме да включим друг 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')
     })
  });
};

Явно няма да стане. Какво трябва да направим вместо това?


person Chong Lip Phang    schedule 29.08.2015    source източник


Отговори (1)


Не забравяйте, че можете също така да правите включвания директно в Jade файла или просто да използвате jade.render в низ от Jade форматирани включвания (като съдържанието по-долу на include.jade). Не изглежда, че има основателна причина рекурсивните включвания, както правите в примера. Просто добавете включването според нуждите в самия Jade файл.

Нещо като:

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

включва.нефрит

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

Като алтернатива вероятно бихте могли да използвате for-цикъл.

person Nuclearman    schedule 29.08.2015