我无法 catch 对普通 Handlebars 和改进的Ember Handlebars 助手所做的所有更改。如果我没记错的话,可以使用以下方法注册一个助手

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

  • 对我来说太过分了。您能脚踏实地解释一下有什么区别吗?

    最佳答案

    Ember.Handlebars.registerHelper是不将参数字符串绑定(bind)到属性的基本帮助器。例如,考虑使用hello创建的registerHelper助手,它仅返回问候消息。

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

    当您在模板中使用它时,
    {{hello name}}
    

    您将获得显示文本,即Hello namename属性的值是,而不是

    要将name属性的值添加到所需的帮助器中,请添加registerBoundHelper。顾名思义,它在name属性之间创建了绑定(bind)。每当name更改时,都会再次调用帮助程序以重新呈现。实现是类似的,
    Ember.Handlebars.registerBoundHelper('hello', function(name) {
      return 'Hello ' + name;
    });
    
    Ember.Handlebars.helperregisterBoundHelper相同,但需要进行一些其他检查以自动检测所需的帮助程序。

    Ember内未使用原始的Handlebars.registerHelper。它将为不使用Ember的项目创建类似的帮助程序。

    关于ember.js - Handlebars helper 和 Ember Handlebars helper 有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18004510/

    10-13 01:08