Provides events for Ember store actions.
ember install ember-store-events
Add the provided mixin to application adapter:
// adapters/application.js
import DS from 'ember-data';
import EventedAdapterMixin from 'ember-store-events/mixins/adapter';
export default DS.JSONAPIAdapter.extend(EventedAdapterMixin, {
});
or to specific model adapter:
// adapters/post.js
import ApplicationAdapter from './application';
import EventedAdapterMixin from 'ember-store-events/mixins/adapter';
export default ApplicationAdapter.extend(EventedAdapterMixin, {
});
Inject the service and subscribe to events:
// routes/application.js
import Ember from 'ember';
export default Ember.Route.extend({
storeEvents: Ember.inject.service(),
beforeModel() {
this._super(...arguments);
this.get('storeEvents').on('update-record', (record, id) => {
window.alert(`record ${record.constructor.modelName} with id ${id} updated`);
});
},
});
The storeEvents
is just an empty service extending Ember.Evented
mixin.
You can inject it where it's needed and subscribe to events triggered by the adapter:
create-record
, delete-record
and update-record
.
Every event is triggered with two arguments: record
and id
.