3

假设我想打印列表的前 3 项。所以我想先splice列出列表,然后再each遍历元素。使用 执行此操作的最佳方法是什么handlebars.js

最直观的做法是,{{#each my_list|splice[0,3]}}{{#each splice my_list 0 3 }}但车把不支持此类操作。

我怎样才能想出一个链接其他助手的助手(知道任何阶段的任何助手都可能需要额外的参数)?

注意:我不想将此逻辑移到其他地方。让我们假设我肯定想要在我的模板中使用这个逻辑。

4

2 回答 2

0

您可以添加自己的助手:

Handlebars.registerHelper('spliced_each', function(a, from, to, block) {
    var s = '';
    for(var i = from; i < to; ++i)
        s += block(a[i]);
    return s;
});

然后你的模板可以说:

{{#spliced_each my_list "2" "5"}}
    ...
{{/spliced_each}}

演示:http: //jsfiddle.net/ambiguous/Zrd42/

Handlebars 故意简单,自定义帮助器是您向模板添加特殊逻辑的方式。

于 2012-09-22T19:39:00.170 回答
0

我一直在对此进行一些研究,似乎没有在 Handlebars 中调用链式函数的本机可能性。不过,作为该工具的扩展似乎很有趣。

您可以创建一个 Handlebars 帮助函数,让您链接函数。使用这个新助手,您可以组合任何类型的把手助手或您自己的助手,将函数的每个结果用作下一个函数的参数。

查看 Handlebars 回购问题: Handlebars 回购

还有一组不错的 Handlebars 助手,不适合您在这里想要做的事情,但可能会帮助您进行一些其他操作Handlebars Helpers

于 2013-07-23T01:24:39.753 回答