2015-10-16 60 views
0

一直在寻找几个小时的解决方案没有任何解决方案。我试图创建一个使用自定义的余烬车把帮手:Ember 2.0把手帮手不是函数吗?

Ember.Handlebars.helper('highlight', function(value, options) { 
    var escaped = Handlebars.Utils.escapeExpression(value); 
    return new Ember.Handlebars.SafeString('<span class="highlight">' + escaped + '</span>'); 
}); 

但出于某种原因,我得到Uncaught TypeError: Ember.Handlebars.helper is not a function

我读到,在灰烬2他们有一个新的方法:

// app/helpers/full-name.js 
import Ember from "ember"; 

export default Ember.Helper.helper(function(params, hash) { 
    return params.join(' '); 
}); 

但这是如果你正在使用ember-cli,如何注册helper而没有ember-cli?

+0

你使用的是烬2.0? –

+0

是的,我将标题从2更新为2.0以使其更清晰 –

+0

太好了,为什么不使用烬?这是推荐的做事方式? –

回答

1

在版本2中,他们删除了所有Ember.Handlebars接口调用。

使用新的帮手:

Ember.Helper.helper(function(params) { 

}); 

或延长Ember.Helper

Ember.Helper.extend({ 
    // This service name is only an example 
    compute(params, hash) { 
    return this.get('nameBuilder').build(params, hash.title); 
    }, 
    rebuildName: Ember.observer('nameBuilder.isAnonymized', function() { 
    this.recompute(); 
    }) 
}); 

理想情况下,你也应该使用烬,CLI,它更容易,因为我不知道如何编译并让它在没有它的情况下运行(这是一个非常好的构建系统,你可以使它与任何你想使用的后端服务一起工作

ember serve --proxy 

Ember Cli

+0

感谢Dory为您提供帮助。我将开始转向烬 –