Шаблоны компонентов, определенные в подпапке, приводящие к ошибке при компиляции с использованием grunt-ember-templates
Мы сильно полагаемся на угольные компоненты. Изначально у нас были все наши шаблоны hbs, связанные с компонентами, написанными в папке "templates / components", но, поскольку количество компонентов растет, мы хотели придать больше структуры и определить шаблоны в подпапке в папке компонентов. При этом Эмбер жалуется
Вы ищете компонент [XYZ] в пространстве имен [SUBFOLDER], но пространство имен не найдено
Мой скомпилированный шаблон выглядит так:
Ember.TEMPLATES["components/answers/checkbox-answer"] = ...
Но все работает, если я сделаю следующее изменение:
Ember.TEMPLATES["components/checkbox-answer"] = ...
Работа вокруг меня сейчас состоит в том, чтобы изменить gruntfile следующим образом
emberTemplates: {
options: {
templateName: function(sourceFile) {
var fileName = sourceFile.replace(/.*\/templates\//, '');
if((/^components\//).test(fileName)){
/*if component hbs files are defined within sub-folder, remove the subfolder part*/
return "components"+fileName.substr(fileName.lastIndexOf('/'));
}
return sourceFile.replace(/.*\/templates\//, '');
}
}
Я не уверен, что это угрюмая вещь или что-то еще. Но поставим вопрос в надежде на лучшее решение.
ОБНОВЛЕНИЕ Кажется, что проблема вызвана тем, как мы загружали компоненты. В основном мы используем вспомогательную функцию, которая загружает компонент на основе параметра, который мы передаем ему следующим образом:
Ember.Handlebars.helpers[componentToLoad].call(this, options);
Я проверил Ember.Handlebars.helpers, и в нем нет компонентов, которые были определены в какой-либо папке внутри компонента.