这两个handlebars.js模板有什么不同?
{{#myblock}}
{{this}}
{{/myblock}}和
{{#each myblock}}
{{this}}
{{/each}}由于没有为"myblock“定义帮助器,所以这两个模板(在我看来)的操作和输出是相同的。除了可读性之外,这两个模板之间还有什么区别吗?
发布于 2014-08-11 00:47:45
理解这一点的更简单的方法是,散列符号(#)后面的任何内容都是一个帮助器。帮助器是一个函数,它使用可选的参数来处理调用,这些参数是从模板中的帮助器声明后面派生出来的。
{{#each myblock}}
{{this}}
{{/each}}在#each的情况下,它调用函数来迭代本例中提供的'myblock‘参数(几乎在所有情况下都是数组),并输出为每个元素生成的内容。此将成为该迭代中的元素。
类似地,在第一个例子中,myblock成为一个助手,因为它跟在#符号后面。
{{#myblock}}
{{this}}
{{/myblock}}现在,由于没有名为myblock的预定义帮助器,您可以使用Handlebars.registerHelper()创建自定义帮助器,如下所示。
Handlebars.registerHelper('myblock', function(context, options) {
return options.fn(context);
});https://stackoverflow.com/questions/25230659
复制相似问题