Имеется приложение app/taskboard (если подходить с точки зрения Django, то taskboard можно назвать проектом). Я хочу создать статусы задач - taskstatus внутри taskboard, чтобы выглядело как app/taskboard/taskstatus.
Я использую --pod, прописал в .ember-cli
{
....
"usePods": true
}
Создаю приложение taskstatus
- Структура приложения будет следующая:
/taskboard
|--/taskstatus
| model.js
|
|--/taskstatuses
| |--/index
| | route.js
| | template.js
| |
| |--/edit
| | route.js
| | template.js
| |
| |--/new
| | route.js
| | template.js
| |
| |--/show
| | route.js
| | template.js
| |
| route.js
| template.js
|
route.js
template.js
- Для генерации ресурса (ember generate resource) нужно использовать множественное число для названия приложения - taskboard/taskstatuses.
Делаю генерацию ресурса:
$ ember g resource taskboard/taskstatuses
при этом создается:
- Теперь создаю роуты для создания новых статусов, просмотра и редактирования - ember g route , при этом автоматически создаются и темлейты тоже:
$ ember g route taskboard/taskstatuses/index
$ ember g route taskboard/taskstatuses/new
$ ember g route taskboard/taskstatuses/show --path=:taskstatus_id
$ ember g route taskboard/taskstatuses/edit --path=:taskstatus_id/edit
При выполнении ember g route ключ --path= позволяется добавить автоматически путь в router.js, а значение - :taskstatus_id - это переменная, которая используется в params при вызове.
Вот так выглядит router.js после выполненных генераций:
/* Taskboard app begin*/
this.route('taskboard', function() {
this.route('taskstatuses', function() {
this.route('new');
this.route('show', {
path: ':taskstatus_id'
});
this.route('edit', {
path: ':taskstatus_id/edit'
});
});
});
/* Taskboard app end*/
Я использую --pod, прописал в .ember-cli
{
....
"usePods": true
}
Создаю приложение taskstatus
- Структура приложения будет следующая:
/taskboard
|--/taskstatus
| model.js
|
|--/taskstatuses
| |--/index
| | route.js
| | template.js
| |
| |--/edit
| | route.js
| | template.js
| |
| |--/new
| | route.js
| | template.js
| |
| |--/show
| | route.js
| | template.js
| |
| route.js
| template.js
|
route.js
template.js
- Для генерации ресурса (ember generate resource) нужно использовать множественное число для названия приложения - taskboard/taskstatuses.
Делаю генерацию ресурса:
$ ember g resource taskboard/taskstatuses
при этом создается:
- taskboard/taskstatus - где размещается только модель - model.js . Обратите внимание, создавал во множественном числе, а модель создается в единственном! Именно такой путь - 'taskboard/taskstatus' - и надо будет указывать при обращении к хранилищу, например: this.store.findAll('taskboard/taskstatus')
- taskboard/taskstatuses - здесь создались и будут создаваться все вложенные route.js и template.hbs
- Теперь создаю роуты для создания новых статусов, просмотра и редактирования - ember g route , при этом автоматически создаются и темлейты тоже:
$ ember g route taskboard/taskstatuses/index
$ ember g route taskboard/taskstatuses/new
$ ember g route taskboard/taskstatuses/show --path=:taskstatus_id
$ ember g route taskboard/taskstatuses/edit --path=:taskstatus_id/edit
При выполнении ember g route ключ --path= позволяется добавить автоматически путь в router.js, а значение - :taskstatus_id - это переменная, которая используется в params при вызове.
Вот так выглядит router.js после выполненных генераций:
/* Taskboard app begin*/
this.route('taskboard', function() {
this.route('taskstatuses', function() {
this.route('new');
this.route('show', {
path: ':taskstatus_id'
});
this.route('edit', {
path: ':taskstatus_id/edit'
});
});
});
/* Taskboard app end*/