Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 加载路由时出现Emberjs(链接到HasMany)错误:TypeError:无法调用方法';解决';未定义的_Ember.js - Fatal编程技术网

Ember.js 加载路由时出现Emberjs(链接到HasMany)错误:TypeError:无法调用方法';解决';未定义的

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

我正在尝试设置路由(非嵌套)的模型,但其关系属于setupController

这是我的 i、 e公司有很多联系人 从公司列表页面,我直接链接到联系人页面(希望以这种方式流动)

我想使用公司模型来获取其联系人列表,但出现了错误

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
}];

我为你更新了小提琴,并改变了一些东西。在我看来,添加
联系人作为公司
资源的一种途径,而不是单独的资源,似乎更符合逻辑

我还使公司模型
异步
,因此它在实际渲染所有内容之前等待加载所有模型


如果您不完全理解解决方案,请查看并自由提问。

嘿,谢谢您的解决方案。我仍处于学习阶段,我在资源和路线之间的选择是任何模型(公司、联系人)都必须是资源,在模型上所做的任何事情,如(新建、编辑)都应该是路线……可能是我的想法错误……目前正在进行的解决方案将询问我是否完全理解,再次感谢。