Ответ 1
transformResponse
выполняется на уровне $http
.
При настройке действий $resource с настраиваемым объектом конфигурации этот объект фактически передается в базовую службу $http
. Поэтому, если вы укажете обратный вызов transformResponse
, он будет выполнен на уровне $http
, и результаты вашего преобразования будут переданы обратно в $resource.
$будет создавать новый объект из ваших данных ответа (который уже преобразован обратным вызовом transformResponse
), и этот новый объект будет экземпляром самого ресурса $.
Итак, ваш car
объект будет быть экземпляром car
, но только на мгновение, пока его свойства не будут скопированы в новый объект $resource
.
Здесь упрощенный вид процесса:
- $resource service инициирует запрос
- $http service отправляет запрос и получает ответ
- $http service преобразует ответ (ответ теперь является экземпляром
car
) - $resource service получает преобразованный ответ (от $http)
- $resource service делает экземпляр себя с использованием преобразованных свойств ответа (результат теперь является экземпляром $resource)
Во всяком случае, я не рекомендую украшать или расширять службу $resource, потому что проще написать собственную реализацию, используя службу $http.