angularjs – $resource url中的查询字符串

由于运行经典ASP的服务器的限制,我的服务必须使用查询字符串:

angular
  .module('myServices', ['ng', 'ngResource'])
  .factory('Item', ['$resource',
     function ($resource) {
         return $resource('/api/?p=item/:id');
     }]);

并且我想向它添加额外的查询字符串参数:

Item.query({test: 123}, on_success, on_error);

但生成的url是

/api/?p=item?test=123

显然有一个bug,但是如何解决呢?

编辑:提交于https://github.com/angular/angular.js/issues/1511

您可以使用资源参数。如果您没有在路径中指定占位符,它们将自动转换为查询字符串参数。像那样:

angular
    .module('myServices', ['ng', 'ngResource'])
    .factory('Item', [
         '$resource',
         function ($resource) {
             return $resource('/api');
     }]);

Item.query({p: 'item/1'});

这将导致对/ api?p = item / 1的请求。

P.S。

我想你已经知道了,但你不喜欢它。但我仍然认为这是你的情况下正确的方式。考虑到糟糕的API设计,你正在处理的后端,你可以包装AngularJS资源与另一个服务,这是为你。

http://stackoverflow.com/questions/13147435/query-string-in-resource-url

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:angularjs – $resource url中的查询字符串