2014-09-19 36 views
2

无论我尝试什么,我都无法获得任何帮助者的工作。我试图得到这个工作:无法获得帮助者使用emberjs&ember-cli

app/helpers/render-component.js

import Ember from 'ember'; 

export default Ember.Handlebars.registerBoundHelper('render-component', 
    function(record, fieldCfg, options) { 
     console.log('*** inside renderComponent for ' + record); 
     return new Ember.Handlebars.SafeString('hello'); 
    }); 

app/templates/index.hbs

{{render-component widget}} 

Firefox的控制台说:

TypeError: helper.apply is not a function 
return helper.apply(this, slice.call(arguments, 1)); // vendor.js (line 19908, col 8) 

我在做什么错?我的代价是:

"dependencies": { 
"handlebars": "~1.3.0", 
"jquery": "^1.11.1", 
"ember": "1.7.0", 
"ember-resolver": "~0.1.7", 
"loader": "stefanpenner/loader.js#1.0.1", 
"ember-cli-shims": "stefanpenner/ember-cli-shims#0.0.3", 
"ember-cli-test-loader": "rwjblue/ember-cli-test-loader#0.0.4", 
"ember-load-initializers": "stefanpenner/ember-load-initializers#0.0.2", 
"ember-qunit": "0.1.8", 
"ember-qunit-notifications": "0.0.4", 
"qunit": "~1.15.0", 
"bootstrap": "~3.2.0", 
"moment": "~2.8.3", 
"fastclick": "~1.0.3" 
} 

重命名为renderComponent也不起作用。

其实这很奇怪。有些时候,它只适用于我列表中的几个项目,有时适用于所有项目,有时会失败......我不明白发生了什么事情。

回答

3

与Ember-CLI:http://www.ember-cli.com/#resolving-handlebars-helpers

变化:Ember.Handlebars.registerBoundHelper

到:Ember.Handlebars.makeBoundHelper

不同的是, “注册” 是明确地定义一个帮手余烬不会自动默认情况下解决,即那些不包含短划线的助手。因为你的助手确实有名字短划线,所以不需要注册步骤。

+0

谢谢。我在这上面浪费了几个小时。 – jbrown 2014-09-20 07:52:50