Ember.js 修改关系时,余烬数据模型不会变脏

Ember.js 修改关系时,余烬数据模型不会变脏,ember.js,ember-data,Ember.js,Ember Data,我的Ember应用程序中有一个模型,它有很多关系: App.Book = DS.Model.extend({ tags: DS.hasMany('tag') }); 问题在于,在向书本添加/删除标签时,书本模型本身不会变得“脏”。例如: book = this.store.find('book', 123); book.get('tags.length') ==> 0 tag = this.store.find('tag', 456); book.get('tags').pushOb

我的Ember应用程序中有一个模型,它有很多关系:

App.Book = DS.Model.extend({
  tags: DS.hasMany('tag')
});
问题在于,在向书本添加/删除标签时,书本模型本身不会变得“脏”。例如:

book = this.store.find('book', 123);
book.get('tags.length')
==> 0
tag = this.store.find('tag', 456);
book.get('tags').pushObject(tag);
book.get('tags.length')
==> 1
book.get('isDirty') // should be true, but is false
==> false

在我看来,
book
实例现在应该是脏的,因为它的一个关系被更改了。我做错了什么?

临时解决方案是在修改记录的关系后手动调用
record.send('becomeDirty')

听起来像是一个bug,你能设置一个jsbin来显示问题吗?顺便问一句,看起来你是在向标记数组中添加承诺,这是故意的吗?(余烬数据从find调用返回一个承诺)实际上,我只是不想处理使此代码更易于阅读的承诺。在我的实际应用中,我的方法是正确的。另外,我现在将尝试创建一个jsbin。您找到解决方案了吗?我发现在过去的几个月里,Ember数据中的脏记录出现了一些问题,但我试图弄清楚这是故意的还是实际上是Ember-Data中的一个bug。从未找到解决方案。我在余烬的论坛上发布了这篇文章,但没有人回复。现在,我只是在修改记录的关系时手动调用
record.send('becomeDirty')