Блоки и расширения в макетах Jade с Express не работает - PullRequest
1 голос
/ 24 ноября 2011

У меня есть небольшой экспресс-сайт, написанный для узла.Я использую Jade для разметки, и пытаюсь разобраться с новыми битами extends / block.Когда я использую стандартный список шаблонов макетов / дочерних представлений здесь, все работает отлично:

https://github.com/visionmedia/express/blob/master/examples/jade/views/layout.jade

Я хочу получить модные и использовать блоки для вставки пользовательских HTML в определенные части мастерараскладка.Поэтому я перешел к чему-то более похожему на это:

https://github.com/visionmedia/jade/blob/master/examples/extend-layout.jade

https://github.com/visionmedia/jade/blob/master/examples/extend.jade

Используя точный код в приведенном выше примере расширения, мои страницывсегда будет отображать часть extend-layout.jade, но никогда не будет содержимого внутри.Кажется, что-нибудь внутри блока никогда не рендерится.Я попробовал, но это не помогло:

https://github.com/visionmedia/jade/issues/377

Я использую нод 0.6.2, экспресс 0.2.5 и нефрит 0.18.Любой берущий?

Ответы [ 2 ]

1 голос
/ 20 апреля 2012

Запись конфигурации макета устарела в любом случае с v3 Express.

Вы можете использовать только стиль block / extends.

0 голосов
/ 25 ноября 2011

Итак, я понял, что случилось.Я вручную указывал макет для использования в экспрессе - я устанавливал его в правильном макете, но удаление этой строки решило проблему.Пример (для других, кто сталкивается с этим):

exports.index = function(req, res){
  res.render('index', { title: 'Express' })  // this works!
  res.render('index', { title: 'Express', layout: 'layout' }) // this doesn't work
};

Я бы ожидал другого поведения - в том числе такая явная компоновка просто приводила к тому, что дочернее представление не отображалось в основной компоновке.

...