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;
});