2013-07-31 1 views
5

Ho avuto qualche confusione riguardo al modello Ember.Route rispetto a setupController. Ho un esempio applicazione qui:È necessario impostare il modello sul controller quando si utilizza setupController su Ember.Route?

http://jsbin.com/ihakop/5/edit

Mi chiedo perché è che ho bisogno di aggiungere quanto segue (vedi commento in linea)

App.AppsShowRoute = Ember.Route.extend({ 
    model: function(params) { 
    return App.LtiApp.find(params.id); 
    }, 

    setupController: function(controller, model) { 
    controller.set('reviews', App.Review.find()); 

    // Why is this line needed? Shouldn't it have the model 
    // already on the controller? 
    controller.set('model', model); 
    } 
}); 

Non dovrebbe il modello già essere sulla controllore?

risposta

9

Questa è una buona domanda. Questo comportamento è stato introdotto con RC4. Date un'occhiata a questo blog post per la spiegazione. La raccomandazione dei ragazzi Ember è di aggiungere una chiamata a _super():

App.AppsShowRoute = Ember.Route.extend({ 
    model: function(params) { 
    return App.LtiApp.find(params.id); 
    }, 

    setupController: function(controller, model) { 
    this._super(controller, model); 
    controller.set('reviews', App.Review.find()); 
    } 
});