我的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 }
选项。也就是说,我不确定我是否真的能够删除该选项,因为标签可能有数百万本书,而且我不想用标签加载所有这些书。
任何方式让事情按原样运作?
答案 0 :(得分:0)
Ember Data的唯一方式就是神奇地'如果您删除了记录,则从两者中删除。如果您只是从其他记录中删除记录,从技术上讲,Ember数据不是正面的,您不希望仍然拥有从该记录到该记录的其他关系。