0

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

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

编辑

看起来嵌套路由只是从主路由中提取模型数组。这很奇怪,因为我确认每个 Route 的模型方法都是在点击相应的 URL 时被调用的。

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'});
  }
});
4

1 回答 1

1

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

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

renderTemplate: function(controller, model) {
  this.render({into: 'application', outlet: 'modal', controller: controller});
}
于 2013-11-01T14:30:34.133 回答