Как заменить BODY на index.hbs в layout.hbs? - PullRequest
0 голосов
/ 25 сентября 2018

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

Итак, я установил свою песочницу с экспресс-CLI, указав руль в качестве моего механизма просмотра (express --view = hbs sandbox), и он сгенерировал соответствующую файловую структуру.

После того, как я установил и запустил универсальное приложение как есть и перешел на localhost: 3000 / мне предоставляется ожидаемая страница Express.

Насколько я понимаю, при переходе к '/' я запускаю маршрутизатор, указанный в './app', и, в конечном счете, он находится в './routes/index.js'

...
var indexRouter = require('./routes/index');
...
app.use('/', indexRouter);

Если я посмотрю на этот маршрут, то увижу, что он ссылается на «индекс» как на свое представление и передает переменные вместе с ним в указанное представление.

router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

Когда я перехожу к представлению './views/index.hbs', я вижу, что переданная информация используется в тегах h1 и p.

<h1>{{title}}</h1>
<p>Welcome to {{title}}</p>

Если я захожу на «./views/layout.hbs» и делаю там изменения, они выражаются, когда я посещаю «index».

<!DOCTYPE html>
<html>
  <head>
    <title>{{title}}</title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <h1>Just Checking!</h1>
    {{{body}}}
  </body>
</html>

Нет ссылки на «layout.hbs» ни в маршруте, ни в представлении «index».

Когда я пытаюсь выяснить, что делает движок вида, я могу только попытаться исследовать тот факт, что это элемент руля с тремя скобками вместо двух, что неоднократно приводило к простому объяснению «Unescaped Element»(Пример: https://mustache.github.io/mustache.5.html)

Как layout.hbs влияет на index.hbs? Может ли это использоваться аналогично «блокам» в pug?

Дополнительные исследования:

ItПохоже, что был задан похожий вопрос ( Что означает `{{{variable}}}` на руле? ), и ответ таков, что я нашел, но он не объясняет {{{body}}} и как это берет в информации индекса.

...