как обратиться к внешней переменной в loop handlebars js

Аватар пользователя Ivan Gagarinov
Ivan Gagarinov
09 марта 2025

В Handlebars.js, обращение к внешней переменной в цикле может показаться немного запутанным из-за того, что Handlebars имеет свои ограничения в области видимости переменных. Но есть несколько способов обратиться к внешней переменной в цикле:

  1. Handlebars позволяет использовать префикс ../ для обращения к родительской области видимости. Если нужно обратиться к переменной за пределами цикла, можно использовать этот префикс:
{{#each items}}
    {{../externalVar}}
{{/each}}

Где externalVar - внешняя переменная.

  1. Можно создать собственный хелпер, который будет предоставлять доступ к внешним переменным. Нужно зарегистрировать кастомный хелпер с помощью метода Handlebars.registerHelper(), который будет принимать внешнюю переменную в качестве параметра:
Handlebars.registerHelper('externalVar', () => {
    return externalVar;
});

Затем можно использовать этот кастомный хелпер в шаблоне:

{{#each items}}
    {{externalVar}}
{{/each}}
  1. Если нужно использовать внешнюю переменную несколько раз, то можно передать ее в контекст шаблона:
const template = Handlebars.compile(source);
const context = { items: items, externalVar: externalVar };
const html = template(context);

Шаблон:

{{#each items}}
    {{externalVar}}
{{/each}}
0 0
Познакомьтесь с основами JavaScript бесплатно