Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Creating custom adapters for angular-data
angular.module('myApp', ['angular-data']).run('DS', 'DSCustomAdapter', function (DS, DSCustomAdapter) {
// register the adapter with the data store
DS.adapters.DSCustomAdapter = DSCustomAdapter;
// set your custom adapter as the default
DS.defaults.defaultAdapter = 'DSCustomAdapter';
angular.module('myApp').provider('DSCustomAdapter', function () {
'use strict';
var defaults = this.defaults = {
queryTransform: function (resourceName, params) {
return params;
// inject whatever you need here
this.$get = ['$q', function ($q) {
return {
defaults: defaults,
// implement each function that will be used
find: function (resourceConfig, id, options) {
// "resourceConfig" will be the return value of DS.defineResource(...)
var deferred = $q.deferred();
// asynchronously retrieve a single item from wherever
// then resolve or reject the promise
return deferred.promise;
findAll: function (resourceConfig, params, options) {...},
create: function create(resourceConfig, attrs, options) {...},
update: function (resourceConfig, id, attrs, options) {...},
updateAll: function (resourceConfig, attrs, params, options) {...},
destroy: function (resourceConfig, id, options) {...},
destroyAll: function destroyAll(resourceConfig, params, options) {...}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment