2013-08-01 85 views
10

我无法赶上所有对纯手柄和修改后的Ember Handlebars佣工所做的修改。如果我没记错的话,你可以用下面的方法注册一个帮手Handlebars助手和Ember Handlebars助手之间有什么区别?

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

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

回答

12

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

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

当你在模板中使用它,

{{hello name}} 

你会得到显示文本,Hello namename财产的价值是而不是抬头。

要将name财产的价值转换为您需要的佣工,registerBoundHelper。顾名思义,它创建了一个与name属性之间的绑定。任何时候name改变帮助者被再次调用以重新提交。执行是相似的,

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

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

Ember中未使用香草Handlebars.registerHelper。它会为不使用Ember的项目创建类似的助手。

+0

谢谢!亲爱的达珊,你能看看我的另一个关于帮手的问题吗? http://stackoverflow.com/questions/18005111/custom-handlebars-helper-parameter-is-not-resolved我有一个块的问题。 – wryrych

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

  • Ember.Handlebars.registerBoundHelper就像Ember.Handlebars.helper,但您可以只提供一个函数作为辅助定义。

  • Ember.Handlebars.registerHelper先前委托给Handlebars.registerHelperEmber.Handlebars.registerHelper不再存在,但Handlebars.registerHelper在内部仍由Ember在绑定建立后创建所有助手。

相关问题