Emberjs (ссылка на HasMany) Ошибка при загрузке маршрута: TypeError: невозможно вызвать метод "разрешение" неопределенного

Я пытаюсь установить модель маршрута (не вложен), но с отношением относятся к setupController

Вот мой JSBIN, т. Е. Компания hasMany Contacts со страницы списка компаний. Я напрямую связался с страницей контактов (хочу, чтобы поток был таким образом)

Я хочу использовать модель компании, чтобы получить список своих контактов, но я получаю ошибку

Error while loading route: TypeError: Cannot call method 'resolve' of undefined

Heres my Router

App.Router.map(function() { this.resource('companies',{path:'/'}); this.resource('company',{path:'/company/:company_id'}); this.resource('contacts',{path:'/company/:id/contacts'});
});

Это то, что я делаю

App.ContactsRoute = Em.Route.extend({ setupController: function(controller, model) { console.log(model.get('contacts')); //This line gives error //controller.set('model',model.get('contacts')); }
});

Модель

App.Company = DS.Model.extend({ name: DS.attr('string'), contacts: DS.hasMany('Contact')
});
App.Company.FIXTURES = [{ id: 1, name: 'company 1', contacts: ['1']
}, { id: 2, name: 'company 2', contacts: ['1', '2']
}];
App.Contact = DS.Model.extend({ name: DS.attr('string'), company: DS.belongsTo('Company')
});
App.Contact.FIXTURES = [{ id: 1, name: 'employee 1', company: 1
}, { id: 2, name: 'employee 2', company: 2
}];
1 ответ

Обновленный скрипт

Я обновил скрипку для вас и изменил несколько вещей. Для меня было логичнее добавлять contacts в качестве маршрута ресурсной company вместо отдельного ресурса.

Я также сделал async модель компании, поэтому она ожидает, что все модели будут загружены до фактического отображения всего

Будьте внимательны и не стесняйтесь задавать вопросы, если вы не полностью понимаете решение.

licensed under cc by-sa 3.0 with attribution.