Хелперы
В Issak используются различные хелперы. Подключены такие группы, как «math», «string», «array», «conditional».
Хелперы - это помощники, которые могут что-то сделать с переменными. Они бывают двух видов: строчные и блочные.
Строчные хелперы выглядят очень просто, они начинаются с имени хелпера и могут включать в себя N переменных:
{{helper var1 var2}}
Блочные хелперы выглядят так: #имяхелпера - начало блока, /имяхелпера - конец блока. У блочного хелпера есть начало, тело с текстом и переменными и конец. Как правило, блочные хелперы используются для вывода какого-либо текста в зависимости от условий.
{{#helper var1 var2}}
Текст и переменные
{{/helper}}
Условия
Сравнение переменной
В качестве примера попросим пользователя указать свой пол и запишем в переменную gender. В зависимости от пола нужно направить разный текст. Для этого используется блочный хелпер сравнения eq:
В примере видно, как открывается блочный хелпер #eq, затем используется переменная gender и строка Женский. Затем закрывается блочный хелпер /eq. Помимо переменных сравниваться могут строки и числа.
У хелперов предназначенных для сравнения можно использовать специальный разделитель {{else}}. В нашем примере в переменную gender записана строка "Женский", поэтому будет выводиться текст "Спасибо, что написала", во всех остальных случаях - "Спасибо, что написал".
Сравнение "больше" или "меньше"
Для сравнения чисел существует два блочных хелпера #gt и #lt:
gt - больше, чем lt - меньше, чем
Cпросим у пользователя его возраст и запишем в переменную age. Открываем блочный хелпер #gt, указываем переменную age и возраст 17. Если введенный возраст 18 и старше - выводится сообщение "Добро пожаловать!", во всех остальных случаях с помощью разделителя {{else}} выводится сообщение "Ботом можно пользоваться только с 18 лет".
Чтобы сравнивать включительно числу, существуют дополнительные хелперы #gte и #lte
gte - больше или равно lte - меньше или равно
Блочные хелперы можно вкладывать друг в друга. Объединим переменную gender и age.
Часто используемые хелперы сравнения
#eq - равенство переменных
#lt - первая переменная меньше второй
#lte - первая переменная меньше либо равна второй
#gt - первая переменная больше второй
#gte - первая переменная больше либо равна второй
#if - если переменная var1 существует и в ней не ложное значение
Дополнительные хелперы сравнения можно посмотреть здесь.
Математика
Isaak поддерживает хелперы для основных математических операций. Все хелперы математики - линейные.
Сложение
Для сложения чисел используется хелпер add:
Как и в блочных хелперах, можно использовать литеральные значения:
В результате в сообщении будет выведен текст "245".
Вычитание
Для вычитания одного числа из другого используется хелпер subtract:
Умножение
Для умножения используется хелпер multiply:
Деление
Для деления используется хелпер divide:
Дополнительные математические хелперы можно посмотреть здесь.
Комментарии
Существует специальный хелпер для комментариев, которые не будут отправлены пользователю. Для этого достаточно обернуть текст:
Использование комментариев удобно для пояснения, если у вас большое количество используемых хелперов.
Массивы и списки
Вывод массивов
{{#each}}{{/each}}
Для того, чтобы вывести все элементы массива используется хелпер #each. Например, осуществляем запрос к некой базе, получаем из нее список с породами кошек и записываем в переменную breeds. Далее пользователь должен выбрать нужную породу.
Каждый из элементов массива внутри хелпера #each доступен как переменная this:
Сообщение, которое увидит пользователь: Выберите породу: Сиамская Мейн-кун Бенгальская
Также внутри хелпера #each доступна специальная переменная @index, которая присваивает элементу порядковый номер, стоит заметить, что элементы массива нумеруются начиная с нуля. Внутри #each можно использовать любые линейные хелперы.
Сообщение, которое увидит пользователь: Выберите породу: 0. Сиамская 1. Мейн-кун 2. Бенгальская
Сообщение, которое увидит пользователь: Выберите породу: 1. Сиамская 2. Мейн-кун 3. Бенгальская
{{itemAt}}
Данный хелпер возвращает элемент массива с заданным индексом. Например:
Более подробная информация о встроенных хелперах с примерами находится по этой ссылке.
setVar
Служит для того, чтобы динамически устанавливать переменную внутри шаблона. Пример:
В разделе "Список переменных" создана переменная cat
, установим ей значение "Рыжий"
:
Запишем значение из другой переменной. Например, существует переменная cat
с первоначальным значением "Рыжий"
Last updated