Я пытаюсь понять, как аргументы помощников Handlebars становятся такими.
Я понимаю реальные вызываемые функции, но не то, как параметры, которые им нужны, передаются их.
Пример 1 - встроенный помощник:
Handlebars.registerHelper("if", function(conditional, options) {
if (conditional) {
return options.fn(this);
} else {
return options.inverse(this);
}
});
Вызывается через
{{#if blockExists}}
//blalba
{{/if}}
Что такое conditional
и options
и как они фактически анализируются для функции?
Пример 2 - Пользовательский помощник:
Handlebars.registerHelper('concat', (str1, str2, separator) => {
return `${str1 || ''}${separator || ''}${str2 || ''}`;
});
Как вообще называется этот помощник? Как анализируются параметры? Как использовать возвращаемое значение, если оно не true
или false
?
Я ценю любую помощь.