如何更新与异步为真的Ember Data模型的双/逆hasMany关系?

时间:2013-10-21 19:58:46

标签: ember.js ember-data

我的Ember应用程序中有两个简单的模型可以这样工作:

App.Book = DS.Model.extend({
  tags: DS.hasMany('tag')
});

App.Tag = DS.Model.extend({
  books: DS.hasMany('book', { async: true })
});

用户可以通过我们的UI轻松添加和删除给定图书的标签。例如,用户删除标记时运行的代码是:

book.get('tags').removeRecord(tagToRemove);
book.save();

这可以很好地从书中删除标签。但是,标签模型本身仍然引用了本书。换句话说,反向关系不会自动更新。

编辑:

执行JS Bin(http://jsbin.com/ucanam/1574/edit)之后,标签books属性未自动更新的原因似乎是因为我传递了{ async: true }选项。也就是说,我不确定我是否真的能够删除该选项,因为标签可能有数百万本书,而且我不想用标签加载所有这些书。

任何方式让事情按原样运作?

1 个答案:

答案 0 :(得分:0)

Ember Data的唯一方式就是神奇地'如果您删除了记录,则从两者中删除。如果您只是从其他记录中删除记录,从技术上讲,Ember数据不是正面的,您不希望仍然拥有从该记录到该记录的其他关系。