Handlebars助手和Ember Handlebars助手之间有什么区别?

时间:2013-08-01 21:04:02

标签: ember.js handlebars.js

我无法赶上普通车把和修改过的Ember Handlebars帮手所做的所有改变。如果我没记错的话,您可以使用以下方法注册帮助

  • Ember.Handlebars.helper
  • Ember.Handlebars.registerHelper
  • Ember.Handlebars.registerBoundHelper
  • Handlebars.registerHelper

这对我来说太过分了。你能解释一下这有什么不同吗?

2 个答案:

答案 0 :(得分:12)

Ember.Handlebars.registerHelper是一个基本的帮助器,它不会将参数字符串绑定到属性。例如,考虑使用hello创建的registerHelper帮助程序,它只返回问候语消息。

Ember.Handlebars.registerHelper('hello', function(name) {
  return 'Hello ' + name;
});

在模板中使用时,

{{hello name}}

您将获得显示文字Hello name。 <{1}}属性的值是查找。

要将name属性的值放入所需的帮助程序name。顾名思义,它会在registerBoundHelper属性之间创建绑定。任何时候name更改辅助器再次被调用以重新渲染。实现类似,

name

Ember.Handlebars.registerBoundHelper('hello', function(name) { return 'Hello ' + name; }); Ember.Handlebars.helper相同,并附加一些检查以自动检测您想要的帮助程序类型。

Ember中没有使用香草registerBoundHelper。它会为不使用Ember的项目创建类似的帮助器。

答案 1 :(得分:1)

  • Ember.Handlebars.helper应该用于注册助手,其他方法只是它的有限版本。 Ember.Handlebars.helper使用绑定呈现HTML,使视图和模型保持同步。函数,视图和组件可以作为帮助程序定义提供。

  • Ember.Handlebars.registerBoundHelperEmber.Handlebars.helper类似,但您只能提供一个函数作为帮助程序定义。

  • Ember.Handlebars.registerHelper之前已委托给Handlebars.registerHelperEmber.Handlebars.registerHelper不再存在,但Handlebars.registerHelper仍在Ember内部使用,以便在设置绑定后创建所有帮助程序。