Вспомогательная функция и итерация

Мои входные данные представляют собой список с запятыми, например, "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}}
Другие вопросы по тегам