这两个handlebars.js模板之间的区别是什么?
{{#myblock}}
{{this}}
{{/myblock}}
和
{{#each myblock}}
{{this}}
{{/each}}
鉴于没有为" myblock"定义帮助器,这两个模板(我可以看到)操作并输出相同的内容。除了可读性之外,两个模板之间是否有任何区别?
答案 0 :(得分:0)
理解这一点的更简单方法是在哈希符号(#)是帮助程序之后出现的任何内容。辅助函数是把手调用可选参数的函数,这些参数是从模板中的辅助声明后面的函数派生的。
{{#each myblock}}
{{this}}
{{/each}}
在#each的情况下,它调用迭代所提供的参数的函数' myblock'在这种情况下(几乎在所有情况下都是数组)并将输出为每个元素生成的内容。 此成为该迭代中的每个元素。
同样在第一个例子中,myblock成为帮助者,因为它遵循#符号。
{{#myblock}}
{{this}}
{{/myblock}}
现在由于没有名为myblock的预定义助手,您可以使用Handlebars.registerHelper()创建自定义助手,如下所示。
Handlebars.registerHelper('myblock', function(context, options) {
return options.fn(context);
});