Ember.js数据关联不保存

Cam*_*aft 7 ember.js ember-data

假设我有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')
})
Run Code Online (Sandbox Code Playgroud)

现在我创造了一个人

App.person = App.Person.createRecord({name: 'Bill'});
App.store.commit();
Run Code Online (Sandbox Code Playgroud)

如果我尝试向这样的人添加地址

address = App.Address.createRecord({street: '123 Fake Street'});
App.person.get('addresses').pushObject(address);
Run Code Online (Sandbox Code Playgroud)

并提交交易

App.store.commit();
Run Code Online (Sandbox Code Playgroud)

将保存新地址,但不会将人物对象识别为已更改; 即使id列表已经过去了

{
  ...
  "addresses": []
}
Run Code Online (Sandbox Code Playgroud)

{
  ...
  "addresses": [3]
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让ember-data知道我的person对象已被更改并且需要保存?

编辑: 是一个说明问题的方法.

小智 1

截至目前(ember-data 修订版 4),还没有办法做到这一点。由于该对象具有外键,因此它仅保留在“属于”一侧,因此如果您在关系的“属于”一侧设置值,它应该保留。Ember 数据的下一版本应该会解决这个问题。