我对Ember.Route模型与setupController有一些混淆。我在这里有一个示例应用程序:
http://jsbin.com/ihakop/5/edit
我想知道为什么我需要添加以下内容(参见内联评论)
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);
}
});
模型不应该在控制器上吗?
答案 0 :(得分:9)
这是一个很好的问题。 RC4引入了此行为。请查看此blog post以获取解释。 Ember人的建议是添加对_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());
}
});