-
Notifications
You must be signed in to change notification settings - Fork 50
Description
I simplified code to show relevant issue.
Ember data models:
var page = DS.Model.extend({
categories: DS.hasMany('category', {async: true}),
});
var category= DS.Model.extend({
page: DS.belongsTo('page', {async: true})
});
In Parse I have relevant columns:
I have page pointer type from category -> page
I have categories array of category objectId's on each page.
When I have instance of page and try this method:
page.get('categories')
or call (in template to iterate):
page.categories
Parse data adapter makes individual GET requests for each categories.
ie: say for example Page has categories array set as ["dyutrdf23", "44fdfdf"]
will make two requests to get the categories.
I modified model hook on Categories route to make one request to fetch all page categories:
var page = this.modelFor('page');
return this.store.find('category', {
where: {
page: {
"__type": "Pointer",
"className": "Page",
"objectId": page.get('id')
}
}
});
This works, I used it from https://github.com/clintjhill/ember-parse-adapter/blob/master/addon/adapters/application.js#L130.
However, I don't understand why this method (findHasMany) is not being called (for one request with query as opposed to individual requests) when I make the page.get('categories').
Maybe I've overlooked something with Ember data/Ember parse adapter here.
Any feedback appreciated. Thank you.