Есть ли способ установить transformResponse
после инициализации $resource
?
У меня в основном расширенный $resource
, но я хочу приложить transformResponse
к расширенной версии, а не к оригиналу.
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;
});
Таким образом, в этом примере я хочу, чтобы установить transformResponse
на что-то подобное (только в 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;
}
}
});
Цель этого заключается в том, чтобы проверить, если какой-либо объект был изменен перед сохранением оптом.
Если я схожу с ума, можете ли вы предложить лучший способ достичь этого?
Вы модифицирования прототип 'MyObject' в вашей заводской функции для' MyExtendedObject', так что вы не создавая второй тип ресурса, поэтому нет такой вещи, как «только в« MyExtendedObject ». – imaginaryboy
@imaginaryboy ok, так есть способ добиться чего-то похожего на то, что я пытаюсь? – Petah