Ember.js 在非Ember cli应用程序中注册Ember.Helper

Ember.js 在非Ember cli应用程序中注册Ember.Helper,ember.js,ember-cli,Ember.js,Ember Cli,如何在不使用Ember cli的情况下注册Ember.Helper 我有一组要迁移的帮助程序,但我们的应用程序尚未准备好迁移到ember cli 解决方案: 使用注册表 Ember.onLoad('Ember.Application', function(Application) { Application.initializer({ name: 'registerMyHelper', initialize: function(registry/*, application*

如何在不使用
Ember cli的情况下注册
Ember.Helper

我有一组要迁移的帮助程序,但我们的应用程序尚未准备好迁移到ember cli

解决方案: 使用注册表

Ember.onLoad('Ember.Application', function(Application) {
  Application.initializer({
    name: 'registerMyHelper',
    initialize: function(registry/*, application*/) {
      registry.register('helper:my-helper', MyHelper);
    }
  });
});
-将进一步详细解释,但是:

有几种方法:

  • Ember.handlebar.helper是注册助手的最佳方式。这个 其他方式是它的版本。Ember.handlebar.helper呈现HTML 使用绑定和同步。。你可以把很多东西传给它
  • Ember.handlebar.registerBoundHelper与 Ember.handlebar.helper,但仅接受函数作为参数 (因此我在示例中使用它)
  • Ember.handlebar.registerHelper以前委托给 车把。登记员。余烬。车把。登记帮助不再 存在,但Handlebar.registerHelper仍由内部使用 Ember在设置绑定后创建所有帮助程序
  • 简单和更复杂的帮助程序示例:

    //Helper to translate a number to words:
    Ember.Handlebars.registerHelper("skillLevelToWords", function (levelNum) {
      if (levelNum < 3) return "Beginner";
      if (levelNum == 3 || Ember.isEmpty(levelNum)) return "Intermediate";
      if (levelNum > 3) return "Expert";
    })
    
    /**
     * Helper to itearte object properties and to print each one with value and key.
      */
    Ember.Handlebars.registerHelper('eachProperty', function(context, options) {
      var ret = "";
      var newContext = Ember.get(this, context);
      for(var prop in newContext)
      {
        if (newContext.hasOwnProperty(prop)) {
          ret = ret + options.fn({property:prop,value:newContext[prop]});
        }
      }
      return ret;
    });
    
    //将数字转换为单词的助手:
    余烬。把手。注册表帮助(“SkillLevelToWord”,函数(levelNum){
    如果(levelNum<3)返回“初学者”;
    如果(levelNum==3 | | Ember.isEmpty(levelNum))返回“中间”;
    如果(levelNum>3)返回“专家”;
    })
    /**
    *itearte对象属性的助手,并使用值和键打印每个属性。
    */
    Ember.handlebar.registerHelper('eachProperty',函数(上下文,选项){
    var ret=“”;
    var newContext=Ember.get(这个,context);
    for(newContext中的var prop)
    {
    if(newContext.hasOwnProperty(prop)){
    ret=ret+options.fn({property:prop,value:newContext[prop]});
    }
    }
    返回ret;
    });