Шаблоны компонентов, определенные в подпапке, приводящие к ошибке при компиляции с использованием 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, и в нем нет компонентов, которые были определены в какой-либо папке внутри компонента.

0 ответов

Другие вопросы по тегам