Javascript handlerbars js中的链帮助器或筛选数据

Javascript handlerbars js中的链帮助器或筛选数据,javascript,handlebars.js,Javascript,Handlebars.js,假设我要打印列表的前3项。因此,我想先将列表拼接,然后将每个拼接到元素上。使用handlebar.js,最好的方法是什么 最直观的方法是类似于{{{{each my_list}splice[0,3]}或{{{each splice my_list 0,3}},但手柄不支持此类操作 我怎样才能找到一个链接其他助手的助手(知道任何助手在任何阶段都可能需要额外的参数) 注意:我不想把这个逻辑转移到其他地方。假设我确实希望在模板中使用此逻辑 您可以添加自己的助手: Handlebars.register

假设我要打印列表的前3项。因此,我想先将列表
拼接
,然后将每个
拼接到元素上。使用
handlebar.js
,最好的方法是什么

最直观的方法是类似于
{{{{each my_list}splice[0,3]}
{{{each splice my_list 0,3}}
,但手柄不支持此类操作

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


注意:我不想把这个逻辑转移到其他地方。假设我确实希望在模板中使用此逻辑

您可以添加自己的助手:

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


Handlebar非常简单,自定义帮助程序就是如何向模板添加特殊逻辑。

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

您可以创建一个车把辅助功能,用于链接功能。 有了这个新的辅助对象,您可以组合任何类型的handlebars辅助对象或您自己的辅助对象,使用函数的每个结果作为下一个函数的参数

查看车把回购问题:


还有一套很好的把手辅助工具,不适合您在这里要做的事情,但可能会帮助您进行一些其他操作

是的,我实际上刚刚创建了一个
拼接
块辅助工具,它环绕着正常的
每个
辅助工具。我不明白为什么它必须如此简单,但在许多情况下,链接函数确实是必需的。@Gauravdahania:它们必须在某个地方划定界限。切换到另一个模板系统如果你不喜欢他们划定的界限,当然也不缺少选择。同意,现在考虑一下像DustJS这样的“更聪明”的模板系统。感谢您的回复:)