Хелперы в 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 | |
В итоге на веб-страницу будет выведен список:
При этом, определив хелпер один раз, мы можем использовать многократно в различных представлениях, передавая ему различные значения.

