For a route /dashboard I have, DashboardController & 2 different named outlets in DashboardView.
connectOutlet of /dashboard Route looks like following
connectOutlets: function(router) {
var appController = router.get('applicationController');
appController.connectOutlet('dashboard', {});
var dashboardController = router.get('dashboardController');
dashboardController.connectOutlet({
name: 'dashProjects',
outletName: 'dashProjects',
context: App.Project.find()
});
dashboardController.connectOutlet({
name: 'projectSummary',
outletName: 'projectSummary'
});
}
Now on click on item(Project) in DashProjectsView, ProjectSummaryView should be updated.
What should be ideal way of sharing an object (in this case Project) between controllers.
One way of doing is creating an shared global object in App.currentProject, but it defeats the purpose.
I think, DashboardController should hold to an object and DashProjects and ProjectSummary should be accessing it. Any guidance/pointers are welcome.
Perhaps you could have a look at https://github.com/emberjs/ember.js/blob/master/packages/ember-views/lib/system/controller.js#L173, and connect dashProjectsController to projectSummaryController.