我正在尝试在嵌套路线中加载编辑表单。当我点击编辑公司的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'});
}
});
答案 0 :(得分:1)
只是预感,但是当您在renderTemplate挂钩中使用render时,您没有指定控制器,因此它可能只是丢弃您的控制器并使用父控制器。
查看文档,但我认为它是这样的
renderTemplate: function(controller, model) {
this.render({into: 'application', outlet: 'modal', controller: controller});
}