2014-09-19 2 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}} 

Консоль светлячок говорит:

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-кли: http://www.ember-cli.com/#resolving-handlebars-helpers

изменение: Ember.Handlebars.registerBoundHelper

к: Ember.Handlebars.makeBoundHelper

разница в том, что "регистр" для явного определения помощника, что уголек автоматически не разрешающую по умолчанию, а именно тех помощников, которые не содержат тире. Поскольку ваш помощник имеет тире в названии, шаг регистрации не требуется.

+0

спасибо. Я потратил несколько часов на это. – jbrown

Смежные вопросы