我做了一个基类,HttpService的响应:ngResource transformResponse似乎并没有被转化
class HttpService
constructor: (url) ->
@service = $resource url, {}, @actionOptions()
actionOptions: ->
query:
method: 'GET'
isArray: true
transformResponse: (data) =>
response = []
wrapped = angular.fromJson(data)
angular.forEach wrapped[@indexRoot], (item) =>
response.push @jsonToModel(item)
response
我继承这样的:
class FooService extends HttpService
constructor: ->
super '/api/foos/:id'
@indexRoot = 'foos'
all: ->
@service.query()
jsonToModel: (data) ->
new Foo(data)
一般情况下,这个想法是延长HttpService的提供资源的URL和索引根(JSON具有索引操作的根元素)。我重写jsonToModel
以提供将响应中的每个JSON元素转换为自定义对象的方法,在本例中为Foo
。
调试时,我可以看到response
是应该在actionOptions()
什么,所以好像transformResponse
将返回我所期望的Foo
秒的阵列。
虽然每次我打电话FooService.all()
,但我得到的数组为Resource
(ngResource默认值)...任何人都知道我在做什么错了?我已经省略了依赖注入和所有东西,但它都工作正常,并且在控制台中没有错误。