辅助函数和迭代

时间:2014-06-12 04:48:31

标签: canjs canjs-view

我的输入数据是逗号列举的列表,例如" EN,FR,ES"我说的一套语言。 我希望我的模板使用ul / li将其呈现为列表。

我已经定义了一个辅助函数,可以转换" en,fr,es"使用Javascript拆分成阵列[" en"," fr"," es"]。

can.stache.registerHelper('split_comma', function(str, options) {
    return str.split(",");
});

但我无法弄清楚如何使模板有效?

假设以下背景:     {语言:" en,fr,es",       语言:[" en"," fr"," es"]}

{{#each languages}} {{this}} and {{/each}}

返回正确的东西。

{{#each split_comma Language}} {{this}} and {{/each}}

不会返回任何内容。

似乎辅助函数没有优先权。

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

据我所知,这不是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}}