Is it possible for many routes to share the same controller without creating there own ?
(one use case will be a signup form with many stages)
as answered in similar question:
  
  
      
     
   
  ember.js 
   
  
    
    
  
  
 
I know that I can do this:
App.LocationsEditRoute = Ember.Route.extend({
setupController: function(controller, model) {
    this.controllerFor('locations.new').setProperties({isNew:false,content:model});
},
renderTemplate: function() {
    this.render('locations/new')         
}
});
 
but it seems that  App.LocationsEditController is exist in the memory  anyway, and just replace by another later.
it it possible to prevent its creation in the first place?
             
            
               
               
              1 Like 
            
            
           
          
            
            
              I haven’t tried this out but it looks like you can now define what controller a route uses via controllerName…
From the RC7 release notes :
Routes can now specify their controller class name with controllerName
 
             
            
               
               
               
            
            
           
          
            
            
              What a Timing!
I made a small test but it not seems to work:
http://jsbin.com/odiwaj/1/edit 
maybe I’m not using it right…
App.Router.map(function () {
  this.resource('signup', { path : '' } , function () {
    this.route('step1', { path : 'step1' });
    this.route('step2', { path : 'step2' });
  });
});
App.SignupStep1Route = Ember.Route.extend({
  controllerName : 'SignupStep2Controller'
});
App.SignupStep1Controller = Ember.ObjectController.extend({
  test : 'test 1'
});
App.SignupStep2Controller = Ember.ObjectController.extend({
  test : 'test 2'
});
 
             
            
               
               
               
            
            
           
          
            
              
                SelvaG  
                
               
              
                  
                    August 15, 2013,  7:18am
                   
                   
              4 
               
             
            
              First to see your jsbin in action, you need to have an application template with an {{outlet}} to act as a placeholder for other templates.
Updated jsbin
http://jsbin.com/odiwaj/4/edit 
But there seems to be some tweaks with the  Route#controllerName which breaks it. Will have a deeper look at the code once
             
            
               
               
               
            
            
           
          
            
              
                SelvaG  
                
               
              
                  
                    August 15, 2013,  9:49am
                   
                   
              5 
               
             
            
              After going through the code part, found that there is something missing in the following lines
https://github.com/emberjs/ember.js/blob/ba88186b01444de21f9a3ec8b5a850705f4b1cb8/packages/ember-routing/lib/system/route.js#L850-L858 
while setting the controller context to the template.
On searching on the emberjs commits and issues, found that the following pull request has not been merged yet which is the root cause of the issue.
https://github.com/emberjs/ember.js/pull/2983 
             
            
               
               
              1 Like 
            
            
           
          
            
            
              Many Thanks for the affort @SelvaG