2015-10-12 45 views
0

註冊Ember.Helper如何不使用ember-cli非燼-CLI應用

註冊我有一組我要遷移助手,但我們的應用程序還沒有準備好遷移到燼-CLI呢。

SOLUTION: 使用註冊表。

Ember.onLoad('Ember.Application', function(Application) { 
    Application.initializer({ 
    name: 'registerMyHelper', 
    initialize: function(registry/*, application*/) { 
     registry.register('helper:my-helper', MyHelper); 
    } 
    }); 
}); 

回答

0

http://guides.emberjs.com/v1.10.0/templates/writing-helpers/ - 將進一步詳細解釋。然而,:

幾個方面:

  1. Ember.Handlebars.helper是註冊助手的最佳途徑。 其他方式是它的版本。 Ember.Handlebars.helper呈現帶有綁定和同步的HTML ..您可以傳入很多東西。
  2. Ember.Handlebars.registerBoundHelper就像 Ember.Handlebars.helper,但只接受一個函數作爲參數 (所以爲什麼我使用它的例子)
  3. Ember.Handlebars.registerHelper先前下放給 手把.registerHelper。 Ember.Handlebars.registerHelper不再存在 ,但Handlebars.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; 
});