当预期单个记录时,Ember返回一个数组

时间:2013-11-01 06:12:08

标签: ember.js ember-data

我正在尝试在嵌套路线中加载编辑表单。当我点击编辑公司的URL,/ companies / 87 / edit时,我得到了编辑模板,而不是我获得的单个模型:DS.RecordArray:ember314。它是一个包含我想要的模型对象的数组。

我注意到ember314是在公司模板模型中使用的相同数组。我尝试使用CompanyEditRoute的模型返回{},我可以看到模板上反映的更改。我不确定如何只获得我想要的模型,而不是数组内部。

修改

看起来嵌套路线只是从主路线上取出模型阵列。这很奇怪,因为我确认在命中相应的URL时会调用每个Route的模型方法。

App.Router.map(function() {
  this.resource('companies', function() {
    this.resource('company', { path: ':company_id' }, function() {
      this.route('edit');
    });
  });  
});


App.CompanyEditRoute = Ember.Route.extend({
  model: function(params) {
    return App.Company.find(params.company_id);
  },

  renderTemplate: function() {
    this.render({into: 'application', outlet: 'modal'});
  }
});

1 个答案:

答案 0 :(得分:1)

只是预感,但是当您在renderTemplate挂钩中使用render时,您没有指定控制器,因此它可能只是丢弃您的控制器并使用父控制器。

查看文档,但我认为它是这样的

renderTemplate: function(controller, model) {
  this.render({into: 'application', outlet: 'modal', controller: controller});
}