-
Notifications
You must be signed in to change notification settings - Fork 25
Open
Description
When using this.emberSync.find('post'), after fetching data from the server, the relationships are not pushed to the offline Store, only to the online Store: in ActiveModel serializer, extractArray pushes the relationships in the Store, while returning the primary Array. emberSync's find query uses the results returned by onlineSearch = this.onlineStore.find(type, query), which only returns the primary array.
To have the relationships pushed to the offlineStore, I had to override the ActiveModelSerializer:
export default DS.ActiveModelSerializer.extend({
//(..)
extractArray: function(store, primaryType, rawPayload) {
//(..)
if (isPrimary) {
primaryArray = normalizedArray;
} else {
var records=this.container.lookup('store:main').pushMany(typeName, Ember.copy(normalizedArray,true));//added
records.forEach(function(record){//added
record.save();//added
});//added
store.pushMany(typeName, normalizedArray);
}
}
return primaryArray;
},
extractSingle: function(store, primaryType, rawPayload, recordId) {
//(..)
if (isFirstCreatedRecord || isUpdatedRecord) {
primaryRecord = hash;
} else {
var record=this.container.lookup('store:main').push(typeName, Ember.copy(hash,true));//added
record.save();//added
store.push(typeName, hash);
}
}, this);
}
return primaryRecord;
},Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels