expressjs: как расширить часть макета - PullRequest
0 голосов
/ 25 мая 2011

У меня есть layout.jade, который содержит #header #main #footer, а #main содержит #content и #sidebar, мое тело шаблона перейдет к #content, если я сделаю res.rend('template'),

, нотеперь какая-то страница является особенной, которая хочет наследовать только #header #main #footer, и тело шаблона должно перейти к #main, как я могу это сделать в expressjs, мой движок шаблонов - jade.

Ответы [ 3 ]

1 голос
/ 25 мая 2011

Если вы хотите иметь специальный шаблон макета для любого представления, вам просто нужно вызвать de template render со значением макета, а также с именем и расположением вашего нового шаблона макета.

res.render('page', { layout: 'mylayout' });

Это отобразит содержимое макета страницы с mylayout для #header, #footer и других вещей.

1 голос
/ 21 июня 2013

Jade позволяет заменять (по умолчанию), добавлять или добавлять блоки.Предположим, например, что у вас есть скрипты по умолчанию в блоке «head», которые вы хотите использовать на каждой странице, вы можете сделать это:

html
 head
  block head
    script(src='/vendor/jquery.js')
    script(src='/vendor/caustic.js')
 body
  block content

Теперь предположим, что у вас есть страница приложения для игры на JavaScript,вам нужны некоторые сценарии, связанные с игрой, а также эти значения по умолчанию, вы можете просто добавить блок:

 extends layout

 append head
  script(src='/vendor/three.js')
  script(src='/game.js')
0 голосов
/ 25 мая 2011

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

http://expressjs.com/guide.html#view-partials

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...