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},它也不起作用。“或者,如果您打算手动设置它,就不要在模型定义中定义它。”