Каков правильный способ размещения ваших вспомогательных файлов, а также куда они должны идти, чтобы распознаватель нашел их в проекте аддона ember-cli?
Я использую ember-cli 0.2.2.
Я создал помощника из проекта аддона с:
ember g helper display-helper
Генератор поместил файл в app/helpers
что мне показалось неправильным, я бы подумал, что его надо было поместить в addon
хелперы. Я переместил файл в addon/helpers
и он выглядит так:
export default Ember.Handlebars.registerBoundHelper('displayHelper', function displayHelper(searchPath) {
return new Ember.Handlebars.SafeString(get(this, searchPath));
});
Когда я запустил ember test
, я получил следующий вывод:
✘ Ошибка: утверждение не выполнено: помощник с именем «displayHelper» не найден.
Единственный способ, которым я могу найти этот помощник, — это добавить импорт, который ссылается на помощника в компоненте, который использует его следующим образом:
import displayHelper from '../helpers/display-helper';
Это не кажется правильным, я думал, что распознаватель найдет это автоматически?
Также, даже если у меня есть ссылка, следующий код заканчивается тем же сообщением об ошибке, что и выше:
import Ember from 'ember';
var get = Ember.get;
function displayHelper(context, searchPath) {
return new Ember.Handlebars.SafeString(get(context, searchPath));
}
export default Ember.Handlebars.makeBoundHelper(displayHelper);
Подводя итог, я должен иметь эту строку в компоненте, шаблон которого использует помощник:
import displayHelper from '../helpers/display-helper';
И я должен использовать registerBoundHelper
, а не makeBoundHelper
, как говорится в документах, иначе помощник не может быть найден.