2013-07-31 18 views
5

Tôi đã có một số nhầm lẫn liên quan đến mô hình Ember.Route so với setupController. Tôi có một ứng dụng ví dụ ở đây:Bạn có cần đặt mô hình trên bộ điều khiển khi sử dụng setupController trên Ember.Route không?

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

tôi tự hỏi tại sao nó là tôi cần phải thêm sau (xem chú thích 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); 
    } 
}); 

nên không phải là mô hình đã được trên bộ điều khiển?

Trả lời

9

Đây là một câu hỏi hay. Hành vi này đã được giới thiệu với RC4. Hãy xem qua số blog post này để được giải thích. Đề xuất của các anh chàng Ember là thêm một cuộc gọi đến _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()); 
    } 
}); 
Các vấn đề liên quan