假设我想打印列表的前 3 项。所以我想先splice
列出列表,然后再each
遍历元素。使用 执行此操作的最佳方法是什么handlebars.js
?
最直观的做法是,{{#each my_list|splice[0,3]}}
或{{#each splice my_list 0 3 }}
但车把不支持此类操作。
我怎样才能想出一个链接其他助手的助手(知道任何阶段的任何助手都可能需要额外的参数)?
注意:我不想将此逻辑移到其他地方。让我们假设我肯定想要在我的模板中使用这个逻辑。
假设我想打印列表的前 3 项。所以我想先splice
列出列表,然后再each
遍历元素。使用 执行此操作的最佳方法是什么handlebars.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;
});
然后你的模板可以说:
{{#spliced_each my_list "2" "5"}}
...
{{/spliced_each}}
演示:http: //jsfiddle.net/ambiguous/Zrd42/
Handlebars 故意简单,自定义帮助器是您向模板添加特殊逻辑的方式。
我一直在对此进行一些研究,似乎没有在 Handlebars 中调用链式函数的本机可能性。不过,作为该工具的扩展似乎很有趣。
您可以创建一个 Handlebars 帮助函数,让您链接函数。使用这个新助手,您可以组合任何类型的把手助手或您自己的助手,将函数的每个结果用作下一个函数的参数。
查看 Handlebars 回购问题: Handlebars 回购
还有一组不错的 Handlebars 助手,不适合您在这里想要做的事情,但可能会帮助您进行一些其他操作Handlebars Helpers