Хелперы в Handlebars¶
Хелперы фактически представляют функции, которые возвращают некоторую строку. После получения эту строку можно добавить в любое место представления. Строка может представлять собой в том числе и код html.
Хелперы позволяют оптимизировать создание кода представлений. В частности, мы можем один раз определить функцию хелпера, а затем многократно применять ее в самых различных местах для генерации кода.
Для применения хелперов изменим код файла app.js
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
Хелпер определяется с помощью функции hbs.registerHelper()
. Первый параметр функции - название хелпера, а второй - функция, которая возвращает строку. В данном случае возвращается текущее время.
Далее определим представление home.hbs
:
1 2 3 4 5 6 7 8 9 10 11 |
|
Для вызова хелпера в двойных фигурных скобках указывается имя хелпера:
Хелпер может возвращать не просто строку, но и код html. Кроме того, хелперу можно передавать параметры, которые применяются при генерации результата. Например, определим в app.js
еще один хелпер:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
Здесь добавлено определение хелпера createStringList()
, который в качестве параметра принимает некоторый массив строк и из них создает элемент <ul>
. Однако чтобы возвращаемое значение расценивалось именно как html, его надо обернуть в функцию hbs.SafeString()
.
И также изменим файл представления home.hbs
:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
В итоге на веб-страницу будет выведен список:
При этом, определив хелпер один раз, мы можем использовать многократно в различных представлениях, передавая ему различные значения.