Is there anyway to set the transformResponse after initialization of a $resource?
I basically have an extended $resource, but I want to attach a transformResponse to the extended version, and not the original.
angular.module("services").factory('MyObject', function($resource) {
var MyObject = $resource('/my/object.json');
MyObject.prototype.someBusinessLogic = function() {};
return MyObject;
});
angular.module("services").factory('MyExtendedObject', function($resource, MyObject) {
MyObject.prototype.someExtendedBusinessLogic = function() {};
return MyObject;
});
So in that example I want to set the transformResponse to something like this (only in MyExtendedObject):
$resource('/my/object.json', {}, {
query: {
method: 'GET',
isArray: true,
transformResponse: function(data) {
var objects = angular.fromJson(data);
for (var i = 0; i < objects.length; i++) {
objects[i] = new MyExtendedObject(objects[i]);
objects[i].hash = JSON.stringify(objects[i]);
}
return objects;
}
}
});
The purpose for this is to check if any object have been changed before saving them in bulk.
If I'm am way off the par, can you suggest a better way to achieve this?
Seems like you could just tap into the $promise that $resource gives you...
angular.module("services").factory('MyExtendedObject', function($resource, MyObject) {
MyObject.get({whatever:'here'}).$promise.then(function(result){
var transformedStuff = result;
//<!--do transform stuff here-->
return transformedStuff;
});
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With