我正在编写自定义数据适配器(不与网络服务器通信),我需要知道是否已更改hasMany
关系以保持关系数据。
App.Note = DS.Model.extend({
content: attr('string'),
createdAt: attr('date'),
tags: DS.hasMany('tag', { async: true })
});
App.Tag = DS.Model.extend({
name: DS.attr('string'),
notes: DS.hasMany('note')
});
我需要实现适配器的updateRecord
:
updateRecord: function(store, type, record) {
// record.changedAttributes() returns changed attributes but not relationships
}
在我的情况下,附加到note的标签列表可能会更改(通过note.get('tags').addObject(..) / removeObject(..)
),所以我需要获得差异。最好的方法是什么?我可以删除数据库中的所有标签并插入新标签,但这样做效率不高