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 ответ
Попробуйте удалить старые маршруты / контроллеры / шаблоны при добавлении новых. Не храните две копии.
Также это может быть не связано с вашей структурой файлов. Попробуйте создать пустое приложение и скопировать файлы по одному, чтобы увидеть, когда проблема начинает возникать. Используйте генераторы, а затем перезапишите сгенерированные файлы вашими, если это возможно.