Extends: Ember.Object
Uses: Ember.MutableArray
Uses: Ember.Evented
Defined in: addon/-private/system/many-array.js:11
Module: ember-data
A ManyArray is a MutableArray that represents the contents of a has-many relationship.
The ManyArray is instantiated lazily the first time the relationship is requested.
Often, the relationships in Ember Data applications will have an inverse. For example, imagine the following models are defined:
app/models/post.jsimport DS from 'ember-data';
export default DS.Model.extend({
comments: DS.hasMany('comment')
});
app/models/comment.jsimport DS from 'ember-data';
export default DS.Model.extend({
post: DS.belongsTo('post')
});
If you created a new instance of App.Post and added a App.Comment record to its comments has-many relationship, you would expect the comment's post property to be set to the post that contained the has-many.
We call the record to which a relationship belongs the relationship's owner.
DS.Modelprivate
Create a child record within the owner
Object
DS.Model Number
Reloads all of the records in the manyArray. If the manyArray holds a relationship that was originally fetched using a links url Ember Data will revisit the original links url to repopulate the relationship.
If the manyArray holds the result of a store.query() reload will re-run the original query.
Example
var user = store.peekRecord('user', 1)
user.login().then(function() {
user.get('permissions').then(function(permissions) {
return permissions.reload();
});
});
DS.PromiseArray
Saves all of the records in the ManyArray.
Example
store.findRecord('inbox', 1).then(function(inbox) {
inbox.get('messages').then(function(messages) {
messages.forEach(function(message) {
message.set('isRead', true);
});
messages.save()
});
});
DS.PromiseArray Boolean
The loading state of this array
Booleanprivate
true if the relationship is polymorphic, false otherwise.
Objectpublic
Metadata associated with the request for async hasMany relationships.
Example
Given that the server returns the following JSON payload when fetching a hasMany relationship:
{
"comments": [{
"id": 1,
"comment": "This is the first comment",
}, {
// ...
}],
"meta": {
"page": 1,
"total": 5
}
}
You can then access the metadata via the meta property:
post.get('comments').then(function(comments) {
var meta = comments.get('meta');
// meta.page => 1
// meta.total => 5
});
Ember.RSVP.Promiseprivate
Used for async hasMany arrays to keep track of when they will resolve.
ManyRelationshipprivate
The relationship which manages this array.
© 2017 Yehuda Katz, Tom Dale and Ember.js contributors
Licensed under the MIT License.
http://emberjs.com/api/data/classes/DS.ManyArray.html