Вспомогательная функция и итерация
Мои входные данные представляют собой список с запятыми, например, "en, fr, es" для набора языков, на которых я говорю. Я хочу, чтобы мой шаблон отображал его в виде списка, используя ul/li.
Я определил вспомогательную функцию, которая может преобразовать "en, fr, es" в массив ["en", "fr", "es"], используя разделение Javascript.
can.stache.registerHelper('split_comma', function(str, options) {
return str.split(",");
});
Но я не могу понять, как заставить шаблон работать?
Предполагая следующий контекст: { Language: "en,fr,es", languages: ["en", "fr", "es"] }
{{#each languages}} {{this}} and {{/each}}
возвращает нужные вещи.
{{#each split_comma Language}} {{this}} and {{/each}}
ничего не возвращает.
Кажется, что вспомогательная функция не имеет приоритета.
Я что-то пропустил?
1 ответ
Насколько я знаю, это не то, как работают помощники Handlebars. Что вы, вероятно, хотите сделать, это ввести новый раздел с split_comma
помощник, который имеет языковой массив в качестве контекста:
can.stache.registerHelper('split_comma', function(str, options) {
return options.fn(str.split(","));
});
и затем повторить это:
{{#split_comma Language}}
{{#each .}} {{this}} and {{/each}}
{{/split_comma}}