Express Рули добавляют содержимое страницы к частичной странице - PullRequest
0 голосов
/ 13 февраля 2020

Я новичок в express -руле и испытываю трудности в его понимании.

мой макет

просмотров

-layouts

 -mainlayout.hbs 

-partials

 -header.hbs(it contains main menu)
 -footer.hbs
 -patialpage.hbs 

pagecontent.hbs

моя главная страница

<div> {{body}} </div>

это моя частичная страница

{{>header}}

<div> <div>Side Bar Menu</div> <div>Page Content Here</div> </div>

{{>footer}}

это мое содержание

<div>This Content to be append in partial page</div>

1 Ответ

0 голосов
/ 02 марта 2020

Вы только что сделали в неправильной последовательности. Вы пытались добавить содержимое страницы в частичное. В основном макете вы определяете внешний вид вашей страницы. частичные, например, являются частями этого макета (например, navbar, footer, ...)

Ваш основной может выглядеть так:

<div>
{{> header}}
{{body}}
{{> footer}}
</div>

это означает: на каждой стороне верхний и нижний колонтитулы будет загружен и между ними, внутри {{body}} будет отображено представление.

пример файла main.handlebars:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>title</title>
</head>

<body>

  {{!-- navbar partial --}}
  {{> _navbar}}

  {{!-- flash messages --}}
  {{> _flashmessages}}

  {{!-- placeholder for rendered views --}}
  {{{body}}}
</body>

</html>

, затем вы можете визуализировать представление на основе этого основного макета.

пример с отображением только текста

// Index Route
app.get('/', (req, res) => {
  res.send("Hello world");
  });
});

пример с представлением index.handlebars, отображаемым в {{body}} части страницы

// Index Route
app.get('/', (req, res) => {
  res.render('index');
});
...