Я только что изменил структуру маршрута в ember-cli и сломал свое приложение. Я хотел вложить свою текущую структуру на один уровень глубже...
До:
Router.map(function() {
this.resource('placements', function() {
this.route('add');
this.route('import');
this.route('open');
});
this.route('admin');
});
После:
Router.map(function() {
this.resource('portal', function() {
this.resource('placements', function() {
this.route('add');
this.route('import');
this.route('open');
});
this.route('admin');
});
});
Структура моего шаблона также должна была измениться...
До:
- templates/
- placements/
- add.hbs
- import.hbs
- index.hbs
- open.hbs
- admin.hbs
- application.hbs
- index.hbs
- placements.hbs
После:
- templates/
- portal/
- placements/
- add.hbs
- import.hbs
- index.hbs
- open.hbs
- admin.hbs
- index.hbs
- placements.hbs
- application.hbs
- index.hbs
- portal.hbs
Я думал, что сделал все изменения 1-в-1, но по какой-то причине, когда я перезапустил сервер ember, вложенные маршруты «размещения» были нарушены.
В журнале консоли я заметил, что ember все еще пытается найти placements.index
в старом templates/placements/index
, а не в новом каталоге.
Есть одна теория, что шаблоны не могут быть вложены так же, как маршрутизатор? Это означает, что мне может понадобиться явно определить каждый маршрут с помощью renderTemplate
хука a> чтобы он отображал правильный шаблон... это может быть проблемой, потому что этот проект будет довольно большим... возможно, я делаю что-то еще неправильно?
route.transitionTo('placements.add')
вместоroute.transitionTo('portal.placements.add')
. Я думаю, что идея состоит в том, чтобы уменьшить связь между логикой приложения и структурой URL-адреса, чтобы URL-адреса можно было изменить без необходимости полностью менять логику в приложении. - person Adam   schedule 03.07.2014placements.hbs
имеет{{output}}
, а внутри него по умолчанию есть индекс и 3 другие страницы (добавить, импортировать, открыть), которые отображаются внутри него ... теперь, поднимая каталогplacements/
, он убиваетplacements.hbs
и вместо этого просто отображаетindex.hbs
... Надеюсь, это имеет смысл - person Grapho   schedule 03.07.2014