【发布时间】:2015-01-10 13:05:01
【问题描述】:
我对 Angular $resource 有疑问。我将它与启用了 CORS 的 API 服务器一起使用。
无论服务器返回什么错误代码(尝试过 500、422、409)资源总是调用成功回调。
控制器中的动作:
@SpacePostsService.save { spaceId: @space._id }, @post, @_createSuccess, (errors)=>¬
@_createError(errors, form)
SpacePostsService 在哪里:
SpacePostsService = $resource postsUrl, {},¬
query:¬
isArray: true¬
method: 'GET'¬
responseType: 'json'¬
transformResponse: (data, headers)->¬
results = data.results || data¬
results = [results] unless _.isArray(results)¬
results
有人知道我做错了什么吗?
PS。为了便于阅读,我没有展示所有代码,SpacePostService 是一个工厂,它被正确地注入到控制器中。
【问题讨论】:
-
要保存的方法签名是什么样的?
-
你试过
$save吗?另外,如何将SpacePostsService放入控制器类?某种注射?因为你似乎没有得到一些undefined doesn't have a method save,所以它似乎是正确的$resource。我只是猜测,但也许你进入了“实例动作”部分。那么你应该使用….$save { spaceId: @space._id }, @_createSuccess, (errors)=>¬ @_createError(errors, form) -
@PatrickJ.S.我已经更新了这个问题。我不能使用实例方法,因为我也需要发送帖子参数。 Post 不是资源,它只是一个简单的对象。
-
嗯。您是否尝试过访问
$promise对象?从那里你可以检查响应的标题,也许某处出了问题。 -
@PatrickJ.S.我尝试访问 $promise 但它没有帮助 - 它仍然会成功回调。
标签: javascript angularjs coffeescript