Ember.js 加载路由时出现Emberjs(链接到HasMany)错误:TypeError:无法调用方法';解决';未定义的
我正在尝试设置路由(非嵌套)的模型,但其关系属于setupController 这是我的 i、 e公司有很多联系人 从公司列表页面,我直接链接到联系人页面(希望以这种方式流动) 我想使用公司模型来获取其联系人列表,但出现了错误Ember.js 加载路由时出现Emberjs(链接到HasMany)错误:TypeError:无法调用方法';解决';未定义的,ember.js,Ember.js,我正在尝试设置路由(非嵌套)的模型,但其关系属于setupController 这是我的 i、 e公司有很多联系人 从公司列表页面,我直接链接到联系人页面(希望以这种方式流动) 我想使用公司模型来获取其联系人列表,但出现了错误 Error while loading route: TypeError: Cannot call method 'resolve' of undefined 这是我的路由器 App.Router.map(function() { this.resource('co
Error while loading route: TypeError: Cannot call method 'resolve' of undefined
这是我的路由器
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
}];
我为你更新了小提琴,并改变了一些东西。在我看来,添加联系人作为公司资源的一种途径,而不是单独的资源,似乎更符合逻辑
我还使公司模型异步
,因此它在实际渲染所有内容之前等待加载所有模型
如果您不完全理解解决方案,请查看并自由提问。嘿,谢谢您的解决方案。我仍处于学习阶段,我在资源和路线之间的选择是任何模型(公司、联系人)都必须是资源,在模型上所做的任何事情,如(新建、编辑)都应该是路线……可能是我的想法错误……目前正在进行的解决方案将询问我是否完全理解,再次感谢。