Ember.js 余烬数据有很多问题,无法使用子内容更新父对象

Ember.js 余烬数据有很多问题,无法使用子内容更新父对象,ember.js,ember-data,Ember.js,Ember Data,我有一个具有多个地址的联系人模型 Contact = DS.Model.extend({ addresses : DS.hasMany('address') }); Address = DS.Model.extend({ street : DS.attr('string'), city : DS.attr('string'), state : DS.attr('string'), zip : DS.attr('string') }); 最初我只是使用this.stor

我有一个具有多个地址的联系人模型

Contact = DS.Model.extend({
   addresses : DS.hasMany('address')
});

Address = DS.Model.extend({
  street : DS.attr('string'),
  city : DS.attr('string'),
  state : DS.attr('string'),
  zip : DS.attr('string')
 });
最初我只是使用
this.store.find('contact',1)加载一个联系人然后我加载与它相关的所有地址

 this.store.find('address',{cId:1}).then(function(address){   
   model.set('addresses',address);
   self.set('model',model);
   // return addresses;
 });
当我尝试将上面的地址设置为联系人对象时,我收到以下错误:

Error: Assertion Failed: Error: Cannot set read-only property "addresses" on object: <interval-intl-ember-clii@model:contact::ember496:null>
错误:断言失败:错误:无法在对象上设置只读属性“地址”:
我不确定是什么问题。我试图在上面做的事情是尝试按需加载child,而不是最初出于性能原因加载parent,我还没有遇到任何工作示例来帮助我


对上面发生的事情有什么建议吗?

使地址
异步
按需加载,或者如果计划手动设置,则根本不在模型定义中定义地址

addresses : DS.hasMany('address', {async:true})

要填充异步关系,您需要首先“打开”它:

controller.get('addresses').then(function (result) {
  result.pushObjects(addresses);
})

我确实做到了{async:true}),那么您不需要根据需要手动加载它们。当您尝试使用
model.get('addresses')
访问地址时,它会尝试在那时加载它们。我的用例是单独加载地址,然后执行类似于此模型的操作。set('addresses',addressesCollection)但它不起作用。即使我设置了{async:true},它也不起作用。“或者,如果您打算手动设置它,就不要在模型定义中定义它。”