Я пытаюсь загрузить форму редактирования по вложенному маршруту. Когда я нахожу URL-адрес для редактирования компании/companies/87/edit, я получаю шаблон редактирования, но вместо одной модели я получаю: DS.RecordArray: ember314. Это массив с одним объектом модели, который я хочу.Ember возвращает массив, когда ожидается одна запись
Я заметил, что ember314 - это тот же массив, который используется в модели шаблона компаний. Я попробовал возвратить модель CompanyEditRoute {}, и я вижу, что это изменение отражено в шаблоне. Я не уверен, как получить только модель, которую я хочу, а не внутри массива.
EDIT
Похоже, вложенные маршруты только собирание массив модели от основного маршрута. Это странно, потому что я подтвердил, что каждый метод маршрута 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'});
}
});
Что такое значение params.company_id. Я подозреваю, что это 'undefined', поэтому вы в основном вызываете' App.Company.find() 'снова, что, вероятно, также является вашей моделью для 'companines' –
Вы верны! Как я могу получить доступ к company_id на моем пути редактирования в этом случае? –
Nice catch Trek, modelFor ('company') – Kingpin2k