2013-07-31 1 views
5

Mam pewne zamieszanie w odniesieniu do modelu Ember.Route vs. setupController. Mam przykładową aplikację tutaj:Czy musisz ustawić model na kontrolerze podczas korzystania z setupController na Ember.Route?

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

Zastanawiam się dlaczego jest to, że muszę dodać następujący (patrz komentarz inline)

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); 
    } 
}); 

nie powinien być model już na kontroler?

Odpowiedz

9

To jest dobre pytanie. To zachowanie zostało wprowadzone przy pomocy RC4. Zajrzyj do tego blog post, aby uzyskać wyjaśnienie. Rekomendacją facetów Ember jest dodanie połączenia pod numer _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()); 
    } 
});