What is the best way to nest controllers greater than one level deep.
Say I have a list of projects and each project has a list of todos.
How would one set it up so that the list of projects, each project, each list of todos and each todo is represented by a controller.
This is what I have so far but I feel there should be a more efficient/simpler solution.
//controllers/projects.js
export default Ember.ArrayController.extend({
itemController: 'projects/project'
});
//controllers/projects/project.js
export default Ember.ObjectController.extend({
todos: function() {
return this.container.lookupFactory('controller:todos').create({
parentController: this,
contentBinding: 'parentController.model.todos',
});
}.property()
})
//controllers/projects/project/todos.js
export default Ember.ArrayController.extend({
itemController: 'projects/project/todos/todo'
});
//controllers/projects/project/todos/todo.js
export default Ember.ObjectController.extend({
})
//models/project.js
export default DS.Model.extend({
name: DS.attr('string'),
todos: DS.hasMany('todo'),
});
//models/todo.js
export default DS.Model.extend({
description: DS.attr('string')
});