繁体   English   中英

handlebars.js-#each块和#block之间的区别

[英]handlebars.js - difference between #each block and #block

这两个handlebars.js模板之间有什么区别?

{{#myblock}}

  {{this}}

{{/myblock}}

{{#each myblock}}

  {{this}}

{{/each}}

鉴于没有为“ myblock”定义帮助程序,因此这两个模板(从我看到的内容)可以操作并输出相同的模板。 除了可读性之外,这两个模板之间是否还有其他区别?

理解这一点的更简单方法是使用井号(#)作为帮助器之后的内容。 助手是一个函数,它处理带有可选参数的调用,这些参数是从模板中的助手声明之后得出的。

{{#each myblock}}

  {{this}}

{{/each}}

在#each的情况下,它调用对在这种情况下'myblock'提供的参数进行迭代的函数(几乎在所有情况下都是数组),并将输出为每个元素生成的内容。 成为该迭代中的每个元素。

类似地,在第一个示例中,由于myblock跟随#号,因此它成为了一个助手。

{{#myblock}}

  {{this}}

{{/myblock}}

现在,由于没有名称为myblock的预定义帮助程序,您可以使用Handlebars.registerHelper()创建自定义帮助程序,如下所示。

Handlebars.registerHelper('myblock', function(context, options) {
  return options.fn(context);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM