Мне нужно преобразовать ответ службы при каждом получении, сохранении, обновлении. Я создал ресурс и добавил преобразователь, который выполняется, но структура возвращаемого объекта не такая, как если бы я не использовал преобразователь. Здесь я говорю о структуре ответа, а не об объекте, который я трансформирую. Вот мой ресурс:
angular.module('app')
.factory('Insureds', ['$resource', 'config', function ($resource, config) {
function transform(response) {
var insured = response.data.insured;
return response;
}
var memberServicesHostName = config.memberServicesHostName;
return $resource(memberServicesHostName + '/insureds/:insuredId', null,
{
'get': {
method: 'GET', 'withCredentials': true, interceptor:
{
response: function (response) { return transform(response).data; }
}
},
'update': { method: 'PUT', 'withCredentials': true },
'save': { method: 'POST', 'withCredentials': true }
});
}]);
Когда я не использую трансформатор, «застрахованный» находится на первом уровне, когда обещание разрешается, оно разрешается как экземпляр застрахованного объекта. Но с трансформатором есть объект-оболочка, который содержит свойства застрахованного и responseStatus. Вероятно, это связано с тем, что я возвращаюсь из «ответа» в перехватчике. Что нужно вернуть, исходный ответ, как я делаю, или response.data, или response.resource.insured? Я смущен...