Справочник
Базовый
Handlebars.compile(template, options)
Компилирует шаблон, чтобы его можно было выполнить немедленно.
var template = Handlebars.compile('{{foo}}');
template({});
Поддерживает различные параметры, которые изменяют способ выполнения шаблона.
-
data: Установите в значение false, чтобы отключить отслеживание@data. -
compat: Установите в значение true, чтобы включить рекурсивный поиск полей. -
knownHelpers: Хэш, содержащий список помощников, которые, как известно, существуют (имеют истинное значение) во время выполнения шаблона. Передача этого значения позволяет компилятору оптимизировать ряд случаев. Встроенные помощники автоматически включаются в этот список и могут быть исключены, установив это значение вfalse. -
knownHelpersOnly: Установите в значение true, чтобы разрешить дополнительные оптимизации на основе известного списка помощников. -
noEscape: Установите в значение true, чтобы не выполнять HTML-экранирование содержимого. -
strict: Запуск в строгом режиме. В этом режиме шаблоны будут выбрасывать исключения вместо того, чтобы молча игнорировать отсутствующие поля. Это также приводит к отключению обратных операций, таких как{{^foo}}{{/foo}}, если поля не включены явно в исходном объекте. -
assumeObjects: Удаляет проверки существования объекта при обходе путей. Это подмножество режимаstrict, который генерирует оптимизированные шаблоны, когда входные данные данных известны как безопасные. -
preventIndent: По умолчанию отступ вызова частичного шаблона приводит к отступу всего вывода частичного шаблона на ту же величину. Это может привести к неожиданному поведению, когда частичный шаблон записываетpre-теги. Установка этого параметра вtrueотключит автоматический отступ. -
ignoreStandalone: Отключает удаление независимых тегов, если значение установлено вtrue. При установке блоки и частичные шаблоны на отдельной строке не будут удалять пробелы на этой строке. -
explicitPartialContext: Отключает неявный контекст для частичных шаблонов. При включении частичные шаблоны, которым не передано значение контекста, будут выполняться на пустом объекте.
Handlebars.precompile(template, options)
Предварительно компилирует заданный шаблон, чтобы его можно было отправить клиенту и выполнить без компиляции.
var templateSpec = Handlebars.precompile('{{foo}}');
Поддерживает все те же параметры опций, что и метод
Handlebars.compile. Дополнительно можно передать: -
srcName: Передаётся для генерации карты исходных позиций для входного файла. При выполнении в таком режиме структура возврата{code, map}, гдеcodeсодержит определение шаблона, аmapсодержит карту исходных позиций. -
destName: Необязательный параметр, используемый совместно сsrcName, для предоставления имени выходного файла при генерации карт исходных позиций.
Handlebars.template(templateSpec)
Настраивает шаблон, предварительно скомпилированный с помощью
Handlebars.precompile. var template = Handlebars.template(templateSpec);
template({});
Handlebars.registerPartial(name, partial)
Регистрирует доступные частичные шаблоны для любого шаблона в среде.
Handlebars.registerPartial('foo', partial);
Также поддерживает одновременную регистрацию нескольких частичных шаблонов.
Handlebars.registerPartial({
foo: partial,
bar: partial
});
При загрузке всей библиотеки частичные шаблоны могут быть строковыми значениями, которые будут компилироваться по требованию. При загрузке только времени выполнения частичные шаблоны должны быть предварительно скомпилированным шаблоном, который был правильно настроен с помощью метода
Handlebars.template. Handlebars.unregisterPartial(name)
Отменяет регистрацию ранее зарегистрированного частичного шаблона.
Handlebars.unregisterPartial('foo');
Handlebars.registerHelper(name, helper)
Регистрирует помощники, доступные для любого шаблона в среде.
Handlebars.registerHelper('foo', function() {
});
Также поддерживает одновременную регистрацию нескольких помощников.
Handlebars.registerHelper({
foo: function() {
},
bar: function() {
}
});
Handlebars.unregisterHelper(name)
Отменяет регистрацию ранее зарегистрированного помощника.
Handlebars.unregisterHelper('foo');
Handlebars.registerDecorator(name, helper)
Регистрирует декоратор, доступный для любого шаблона в среде.
Handlebars.registerDecorator('foo', function() {
});
Также поддерживает одновременную регистрацию нескольких декораторов.
Handlebars.registerDecorator({
foo: function() {
},
bar: function() {
}
});
Handlebars.unregisterDecorator(name)
Отменяет регистрацию ранее зарегистрированного декоратора.
Handlebars.unregisterDecorator('foo');
Handlebars.SafeString(string)
Препятствует
string от экранирования при отрисовке шаблона. new Handlebars.SafeString('<div>HTML Content!</div>')
При построении строки, которая будет помечена как безопасная, любое внешнее содержимое должно быть должным образом экранировано с использованием метода
Handlebars.escapeExpression, чтобы избежать потенциальных проблем безопасности. Handlebars.escapeExpression(string)
HTML-экранирует переданную строку, делая её безопасной для отображения в качестве текста в HTML-содержимом.
Handlebars.Utils.escapeExpression(string)
Заменяет
&, <, >, ", ', `, = эквивалентными HTML-сущностями для строковых значений. Значения SafeString остаются без изменений. Вывод всех выражений, кроме выражений в тройных фигурных скобках, проходит через этот метод. Помощники также должны использовать этот метод при возвращении HTML-содержимого через экземпляр
SafeString, чтобы предотвратить возможную инъекцию кода. Этот метод имеет псевдоним
Handlebars.Utils.escapeExpression. Handlebars.createFrame(data)
Используется помощниками блоков для создания дочерних объектов данных.
if (options.data) {
var data = Handlebars.createFrame(options.data);
data.foo = 'bar';
options.data = data;
}
Помощники, которые изменяют состояние данных, должны создавать новую область видимости при этом, чтобы изолировать себя и избежать порчи состояния родительских элементов. Как правило, для каждого выполнения помощника нужно создать только одну область видимости. Например, итератор
each создаёт одну область видимости, которая используется для всех дочерних вычислений. Handlebars.create()
Создаёт изолированную среду Handlebars.
var OtherHandlebars = Handlebars.create();
Каждая среда имеет свои помощники и частичные шаблоны. Это необходимо только для случаев, которые требуют отдельных помощников или частичных шаблонов. Большинство случаев могут использовать корневую среду
Handlebars напрямую. Шаблоны, созданные для данной среды, привязаны к этой среде. Это означает, что шаблоны, которые должны работать в нескольких средах, должны быть перекомпилированы или перестроены с помощью
Handlebars.template для каждой среды. Это относится и к частичным шаблонам. Handlebars.noConflict()
Удаляет этот экземпляр Handlebars из глобального пространства имён, восстанавливая глобальную переменную `Handlebars` до её предыдущего значения.
var myHandlebars = Handlebars.noConflict();
Это позволяет использовать разные версии библиотеки одновременно без проблем с конфликтами версий.
Handlebars.log(level, message)
Логгер, используемый помощником
log. Может быть переопределён, если это необходимо.
Утилиты
Handlebars предоставляет ряд утилит, доступных через объект
Handlebars.Utils. Handlebars.Utils.isEmpty(value)
Определяет, является ли данное значение пустым.
Handlebars.Utils.isEmpty(value)
Это используется встроенными помощниками
if и with для управления потоком их выполнения. В определении Handlebars пустое значение — это любое из: - Массив с длиной 0
- Ложные значения, кроме 0
Handlebars.Utils.extend(obj, value)
Простая утилита для расширения
obj всеми ключами, определёнными в value. Handlebars.Utils.extend(foo, {bar: true})
Установит ключ
bar в объекте foo со значением true. Handlebars.Utils.toString(obj)
Универсальный метод
toString. Handlebars.Utils.isArray(obj)
Определяет, является ли объект массивом.
Handlebars.Utils.isFunction(obj)
Определяет, является ли объект функцией.
@Переменные данных
Следующие
@data переменные реализованы Handlebars и его встроенными помощниками. @root
Исходный контекст, с которым был выполнен шаблон.
{{#each array}}
{{@root.foo}}
{{/each}}
Если явно не изменён, это значение согласовано во всех частях рендеринга страницы, что означает, что его можно использовать в частичных шаблонах, где параметры в глубину не могут ссылаться на родительские шаблоны.
@first
Устанавливается в true помощником
each для первой итерации. {{#each array}}
{{#if @first}}
First!
{{/if}}
{{/each}}
@index
Индекс с нуля для текущего шага итерации. Устанавливается помощником
each.{{#each array}}
{{@index}}
{{/each}}
@key
Имя ключа для текущего шага итерации. Устанавливается помощником
each при итерации по объектам. {{#each array}}
{{@key}}
{{/each}}
@last
Устанавливается в true помощником
each для последнего шага итерации. {{#each array}}
{{#if @last}}
Last :(
{{/if}}
{{/each}}
@level
Назначенный уровень логирования.
template({}, {data: {level: Handlebars.logger.WARN}})
Может быть установлен в одно из значений
Handlebars.logger.DEBUG , Handlebars.logger.INFO , Handlebars.logger.WARN или Handlebars.logger.ERROR При установке логгер будет включать в вывод только сообщения с уровнем логирования
Handlebars.logger.level или выше. Значение по умолчанию — Handlebars.logger.ERROR.
© 2011–2017 by Yehuda Katz
Licensed under the MIT License.
https://handlebarsjs.com/reference.html