Где «собрать» контент для боковой панели? - PullRequest
0 голосов
/ 09 августа 2011

Я сейчас создаю свой новый сайт с экспресс.Страница разбита на разные «разделы» (например, блог, информация о моем проекте и т. Д.).Я хотел бы иметь "sidebare" рядом с моим контентом, который отличается для каждого раздела.Например, в «blog» -Section ID хотелось бы иметь список моих тегов или категорий, а в разделе проекта должен быть список всех проектов.Содержание зависит от раздела и является одинаковым для каждой «части» этого раздела.

Одним из решений было бы создание функции, которая создает содержимое боковых панелей, и вызов этой функции в каждой функции, которая обрабатывает маршрут.Но мне не нравится это решение, потому что оно не кажется «правильным» ...

У кого-нибудь есть хорошее решение для этого?

1 Ответ

1 голос
/ 09 августа 2011

Если я правильно понимаю ваш вопрос, вы хотите знать, как отобразить несколько «разделов», используя один и тот же общий шаблон, да?Каждый раздел может отличаться в зависимости от содержимого страницы и основного URL.

Я могу предложить два способа: 1) ИМХО правильный путь - определить базовый шаблон (например, index.jade, если вы используете Jade/ express), и вы создадите маршруты для, скажем, домашней страницы (/) и страницы блога (/ blog), используя это:

# Home Page
app.get '/', (req, res) ->
  # Do some simple DB transactions, etc, and get the main area content.
  res.render 'index.jade', { json: json }

# Blog Page
app.get '/blog/:id', (req, res) ->
  blog.grabPost req.params.id, (json) ->  # Grab content of the blog post from the DB
    res.render 'index.jade', { json: json }

Затем создайте несколько «частичных» URL-адресов для оставшейся части контента:

# Sidebar Partial
app.get '/sidebar/:page/:id', (req, res) ->
  sidebar.grabContent req.params.id, (json) ->
    res.render '{#req.params.page}.jade', { json: json }

Затем вы вызываете частичную клиентскую сторону при загрузке страницы через JQuery следующим образом:

$ ->
  $('.sidebar').load '/sidebar/blog/365' + id, (response, status, xhr) ->

2) Использование Express 'view partials', с которым я гораздо менее знакомс.Документация может быть найдена здесь: http://expressjs.com/guide.html#view-partials

Из описания: «Система представлений Express имеет встроенную поддержку частичек и коллекций, которые представляют собой« мини »представления, представляющие фрагмент документа. Например, вместо итерациидля отображения комментариев мы можем использовать частичную коллекцию: "

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