4

我一直对 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);
  }
});

模型不应该已经在控制器上吗?

4

1 回答 1

8

这是一个很好的问题。此行为是在 RC4 中引入的。请查看此博客文章以获取解释。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());
  }
});
于 2013-07-31T17:23:13.043 回答