ember.js - 在 Ember.Route 上使用 setupController 时需要在 Controller 上设置模型吗?

标签 ember.js

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

模型不应该已经在 Controller 上了吗?

最佳答案

这是一个很好的问题。此行为是在 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());
  }
});

关于ember.js - 在 Ember.Route 上使用 setupController 时需要在 Controller 上设置模型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17976857/

相关文章:

ember.js - 为什么 ember 链接与 queryParams 结合会导致此异常 : "TypeError: delegate is not a function"?

javascript - Ember js - 组件与 Controller

javascript - Emberjs 使用 hasMany/belongsTo 创建记录

ember.js - 有什么方法可以在 Ember Data 中使用单个 POST 请求创建一批多条记录?

javascript - 通过 hasMany 关系访问 ember-model 对象中的相关集合

javascript - 检索当前用户的策略

javascript - 用条件 HTML 代替导出的 Ember 嵌套路由模板

ember.js - 删除模型时Ember数据错误

ember.js - Ember 数组数据

jquery - 如何在 ember.js 中使用 bxslider 插件