首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >handlebars.js - #each block和#block之间的差异

handlebars.js - #each block和#block之间的差异
EN

Stack Overflow用户
提问于 2014-08-11 00:25:48
回答 1查看 567关注 0票数 0

这两个handlebars.js模板有什么不同?

代码语言:javascript
复制
{{#myblock}}

  {{this}}

{{/myblock}}

代码语言:javascript
复制
{{#each myblock}}

  {{this}}

{{/each}}

由于没有为"myblock“定义帮助器,所以这两个模板(在我看来)的操作和输出是相同的。除了可读性之外,这两个模板之间还有什么区别吗?

EN

回答 1

Stack Overflow用户

发布于 2014-08-11 00:47:45

理解这一点的更简单的方法是,散列符号(#)后面的任何内容都是一个帮助器。帮助器是一个函数,它使用可选的参数来处理调用,这些参数是从模板中的帮助器声明后面派生出来的。

代码语言:javascript
复制
{{#each myblock}}

  {{this}}

{{/each}}

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

类似地,在第一个例子中,myblock成为一个助手,因为它跟在#符号后面。

代码语言:javascript
复制
{{#myblock}}

  {{this}}

{{/myblock}}

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

代码语言:javascript
复制
Handlebars.registerHelper('myblock', function(context, options) {
  return options.fn(context);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25230659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档