由于运行经典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,但是如何解决呢?
您可以使用资源参数。如果您没有在路径中指定占位符,它们将自动转换为查询字符串参数。像那样:
angular .module('myServices','ngResource']) .factory('Item',[ '$resource',function ($resource) { return $resource('/api'); }]); Item.query({p: 'item/1'});
这将导致对/ api?p = item / 1的请求。
P.S。
我想你已经知道了,但你不喜欢它。但我仍然认为这是你的情况下正确的方式。考虑到糟糕的API设计,你正在处理的后端,你可以包装AngularJS资源与另一个服务,这是为你。