Class DS.Snapshot private
Methods
attr (keyName) : Object
Defined in addon/-private/system/snapshot.js:90
- keyName
- String
- returns
- Object
The attribute value or undefined
Returns the value of an attribute.
Example
// store.push('post', { id: 1, author: 'Tomster', title: 'Ember.js rocks' });
postSnapshot.attr('author'); // => 'Tomster'
postSnapshot.attr('title'); // => 'Ember.js rocks'
Note: Values are loaded eagerly and cached when the snapshot is created.
attributes : Object
Defined in addon/-private/system/snapshot.js:114
- returns
- Object
All attributes of the current snapshot
Returns all attributes and their corresponding values.
Example
// store.push('post', { id: 1, author: 'Tomster', title: 'Ember.js rocks' });
postSnapshot.attributes(); // => { author: 'Tomster', title: 'Ember.js rocks' }belongsTo (keyName, options) : (DS.Snapshot|String|null|undefined)
Defined in addon/-private/system/snapshot.js:157
- keyName
- String
- options
- Object
- returns
- (DS.Snapshot|String|null|undefined)
A snapshot or ID of a known relationship or null if the relationship is known but unset. undefined will be returned if the contents of the relationship is unknown.
Returns the current value of a belongsTo relationship.
belongsTo takes an optional hash of options as a second parameter,
currently supported options are:
id: set totrueif you only want the ID of the related record to be returned.
Example
// store.push('post', { id: 1, title: 'Hello World' });
// store.createRecord('comment', { body: 'Lorem ipsum', post: post });
commentSnapshot.belongsTo('post'); // => DS.Snapshot
commentSnapshot.belongsTo('post', { id: true }); // => '1'
// store.push('comment', { id: 1, body: 'Lorem ipsum' });
commentSnapshot.belongsTo('post'); // => undefined
Calling belongsTo will return a new Snapshot as long as there's any known
data for the relationship available, such as an ID. If the relationship is
known but unset, belongsTo will return null. If the contents of the
relationship is unknown belongsTo will return undefined.
Note: Relationships are loaded lazily and cached upon first access.
changedAttributes : Object
Defined in addon/-private/system/snapshot.js:131
- returns
- Object
All changed attributes of the current snapshot
Returns all changed attributes and their old and new values.
Example
// store.push('post', { id: 1, author: 'Tomster', title: 'Ember.js rocks' });
postModel.set('title', 'Ember.js rocks!');
postSnapshot.changedAttributes(); // => { title: ['Ember.js rocks', 'Ember.js rocks!'] }eachAttribute (callback, binding)
Defined in addon/-private/system/snapshot.js:306
- callback
- Function
the callback to execute
- binding
- Object
the value to which the callback's
thisshould be bound
Iterates through all the attributes of the model, calling the passed function on each attribute.
Example
snapshot.eachAttribute(function(name, meta) {
// ...
});eachRelationship (callback, binding)
Defined in addon/-private/system/snapshot.js:326
- callback
- Function
the callback to execute
- binding
- Object
the value to which the callback's
thisshould be bound
Iterates through all the relationships of the model, calling the passed function on each relationship.
Example
snapshot.eachRelationship(function(name, relationship) {
// ...
});hasMany (keyName, options) : (Array|undefined)
Defined in addon/-private/system/snapshot.js:234
- keyName
- String
- options
- Object
- returns
- (Array|undefined)
An array of snapshots or IDs of a known relationship or an empty array if the relationship is known but unset. undefined will be returned if the contents of the relationship is unknown.
Returns the current value of a hasMany relationship.
hasMany takes an optional hash of options as a second parameter,
currently supported options are:
ids: set totrueif you only want the IDs of the related records to be returned.
Example
// store.push('post', { id: 1, title: 'Hello World', comments: [2, 3] });
postSnapshot.hasMany('comments'); // => [DS.Snapshot, DS.Snapshot]
postSnapshot.hasMany('comments', { ids: true }); // => ['2', '3']
// store.push('post', { id: 1, title: 'Hello World' });
postSnapshot.hasMany('comments'); // => undefined
Note: Relationships are loaded lazily and cached upon first access.
serialize (options) : Object
Defined in addon/-private/system/snapshot.js:346
- options
- Object
- returns
- Object
an object whose values are primitive JSON values only
Serializes the snapshot using the serializer for the model.
Example
import DS from 'ember-data';
export default DS.Adapter.extend({
createRecord(store, type, snapshot) {
var data = snapshot.serialize({ includeId: true });
var url = `/${type.modelName}`;
return fetch(url, {
method: 'POST',
body: data,
}).then((response) => response.json())
}
});
Properties
adapterOptions
Defined in addon/-private/system/snapshot.js:58
A hash of adapter options
id
Defined in addon/-private/system/snapshot.js:43
The id of the snapshot's underlying record
Example
// store.push('post', { id: 1, author: 'Tomster', title: 'Ember.js rocks' });
postSnapshot.id; // => '1'modelName
Defined in addon/-private/system/snapshot.js:66
The name of the type of the underlying record for this snapshot, as a string.
record
Defined in addon/-private/system/snapshot.js:27
The underlying record for this snapshot. Can be used to access methods and properties defined on the record.
Example
let json = snapshot.record.toJSON();type
Defined in addon/-private/system/snapshot.js:77
The type of the underlying record for this snapshot, as a DS.Model.