Ember-Cli рефакторинг для использования стручков

Я только начал реорганизовывать наше приложение Ember, чтобы использовать Pod, чтобы наша структура каталогов / файлов была более управляемой. В то же время я обновил Ember-Cli, поэтому я работаю со следующей конфигурацией:

Ember      : 1.8.1
Ember Data : 1.0.0-beta.12
Handlebars : 1.3.0
jQuery     : 1.11.2

Я обновил файл environment.js, добавив в него следующее

modulePrefix: 'emberjs',
podModulePrefix: 'emberjs/pods',

Я также попытался установить его в "app / pods" и просто "pods", но безуспешно.

Структура каталогов выглядит следующим образом:

emberjs/
     app/
       controllers - original location, still has some original controllers here for other parts of the system
       pods/
          job/
            parts/
               index/
                  controller.js
                  route.js
                  template.hbs
                edit/
                  controller.js
                  route.js
                  template.hbs

Сборка приложения в порядке, и если я посмотрю в файле emberjs.js, я смогу увидеть различные определения для контроллеров pods, маршрутов и шаблонов.

например

define('emberjs/pods/job/parts/index/controller', ['exports', 'ember'], function (exports, Ember) {
define('emberjs/pods/job/parts/index/route', ['exports', 'ember'], function (exports, Ember) {
define('emberjs/pods/job/parts/index/template', ['exports', 'ember'], function (exports, Ember) {

так что-то признает структуру стручков.

Но проблема возникает, когда я пытаюсь получить доступ к этому маршруту. Я получаю предупреждающее сообщение в консоли и ничего не отображается - в основном он говорит, что может найти шаблон и, похоже, использует сгенерированный контроллер.

generated -> controller:parts Object {fullName: "controller:parts"}
vendor-ver-1423651170000.js:28585 Could not find "parts" template or view. Nothing will be rendered Object {fullName: "template:parts"}
vendor-ver-1423651170000.js:28585 generated -> controller:parts.index Object {fullName: "controller:parts.index"}
vendor-ver-1423651170000.js:28585 Could not find "parts.index" template or view. Nothing will be rendered Object {fullName: "template:parts.index"}
vendor-ver-1423651170000.js:28585 Transitioned into 'jobs.job.parts.index'

Если я загляну в инспектор Ember в Chrome, то увижу, что в разделе "Маршруты" он показывает части / индекс, в котором маршрут частей / контроллера индексов представлен в виде частей / индекса, а шаблон - в виде частей / индекса. Это то, что я должен ожидать? Я не уверен, как Эмбер разрешает различные части при использовании стручков.

Чтобы проверить это, я поместил копию шаблона в каталог templates / parts и перезагрузил его. На этот раз он нашел шаблон и обработал его, но без данных - вероятно, из-за его использования маршрута и контроллера по умолчанию.

Кто-нибудь знает, что я делаю не так. я где-то пропустил шаг или неправильно настроил?

1 ответ

Попробуйте удалить старые маршруты / контроллеры / шаблоны при добавлении новых. Не храните две копии.

Также это может быть не связано с вашей структурой файлов. Попробуйте создать пустое приложение и скопировать файлы по одному, чтобы увидеть, когда проблема начинает возникать. Используйте генераторы, а затем перезапишите сгенерированные файлы вашими, если это возможно.

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