假设我有 2 个模型:
App.Address = DS.Model.extend({
street: DS.attr('string'),
person: DS.belongsTo('App.Person')
})
App.Person = DS.Model.extend({
name: DS.attr('string'),
addresses: DS.hasMany('App.Address')
})
现在我创造了一个人
App.person = App.Person.createRecord({name: 'Bill'});
App.store.commit();
如果我尝试向这样的人添加地址
address = App.Address.createRecord({street: '123 Fake Street'});
App.person.get('addresses').pushObject(address);
并提交交易
App.store.commit();
新地址将被保存,但person 对象不会被识别为已更改;
即使 id 列表已经从
{
...
"addresses": []
}
到
{
...
"addresses": [3]
}
有没有办法让 ember-data 知道我的 person 对象已更改并且需要
被拯救?
编辑:
Here是说明问题的 jsfiddle。
最佳答案
截至目前( Ember 数据修订版 4),还没有办法做到这一点。该对象仅保留在belongsTo 端,因为它具有外键,因此如果您在关系的属于端设置值,它应该持久化。下一个版本的 ember 数据应该解决这个问题。
关于Ember.js 数据关联不保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11480252/