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

wry*_*ych 10 handlebars.js ember.js

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

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

这对我来说太过分了.你能解释一下这有什么区别吗?

Dar*_*kar 12

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

Ember.Handlebars.registerHelper('hello', function(name) {
  return 'Hello ' + name;
});
Run Code Online (Sandbox Code Playgroud)

在模板中使用它时

{{hello name}}
Run Code Online (Sandbox Code Playgroud)

您将获得显示文本,Hello name.找不到name属性的值.

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

Ember.Handlebars.registerBoundHelper('hello', function(name) {
  return 'Hello ' + name;
});
Run Code Online (Sandbox Code Playgroud)

Ember.Handlebars.helper是同registerBoundHelper一些额外的检查,可以自动检测出你想要什么样的帮手.

Handlebars.registerHelperEmber中没有使用香草.它会为不使用Ember的项目创建类似的帮助程序.