AngularJS $resource API 提供根密钥
AngularJS $resource with API supplying root key
我正在构建一个 Angular 应用程序,该应用程序与提供包含在根密钥中的资源的服务器进行通信。
换句话说,对 GET /api/posts
的请求给出 JSON 响应 { posts: [ ... ] }
。
类似地,单个资源请求也包含在根键中,这样 GET /api/post/1
returns 类似于 { post: {title: "Title"} }
.
我想使用 $resource
来处理这些资源的获取,并且已经用典型的行建立了一个工厂:
$resource('/api/posts/:id', {id: '@id'})
但这自然不会起作用,因为它不需要查找根键,并且在查询时需要一个数组而不是一个对象,等等。
我想知道是否有一种相对简单的方法可以使 $resource
透明,以便可以正常使用。我尝试四处寻找解决方案,但找不到与此特定案例相关的任何内容。我完全有可能在 $resource
文档中遗漏了一些非常明显的东西,但我似乎无法弄清楚。任何帮助将不胜感激!
这个问题的解决比我想象的要简单。正如 Patrick 在他的评论中所建议的那样,只需将 query
方法覆盖为 isArray: false
,然后手动拔出密钥即可。实际上,它看起来像这样:
$resource('/api/posts/:id', {id: '@id'}, {query: {method: 'GET', isArray: false}})
...
$resource.query({}, function(response) {
posts = response.posts;
// Do whatever with posts
})
我一直想知道是否有办法让 $resource.query()
return 只有根键的值,但这没有意义,也没有必要。
我正在构建一个 Angular 应用程序,该应用程序与提供包含在根密钥中的资源的服务器进行通信。
换句话说,对 GET /api/posts
的请求给出 JSON 响应 { posts: [ ... ] }
。
类似地,单个资源请求也包含在根键中,这样 GET /api/post/1
returns 类似于 { post: {title: "Title"} }
.
我想使用 $resource
来处理这些资源的获取,并且已经用典型的行建立了一个工厂:
$resource('/api/posts/:id', {id: '@id'})
但这自然不会起作用,因为它不需要查找根键,并且在查询时需要一个数组而不是一个对象,等等。
我想知道是否有一种相对简单的方法可以使 $resource
透明,以便可以正常使用。我尝试四处寻找解决方案,但找不到与此特定案例相关的任何内容。我完全有可能在 $resource
文档中遗漏了一些非常明显的东西,但我似乎无法弄清楚。任何帮助将不胜感激!
这个问题的解决比我想象的要简单。正如 Patrick 在他的评论中所建议的那样,只需将 query
方法覆盖为 isArray: false
,然后手动拔出密钥即可。实际上,它看起来像这样:
$resource('/api/posts/:id', {id: '@id'}, {query: {method: 'GET', isArray: false}})
...
$resource.query({}, function(response) {
posts = response.posts;
// Do whatever with posts
})
我一直想知道是否有办法让 $resource.query()
return 只有根键的值,但这没有意义,也没有必要。