由于运行经典 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);
但生成的网址是
/api/?p=item?test=123
显然有一个错误,但如何解决它?
编辑:提交至 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
的请求.附言
我想你已经知道了,但你不喜欢它。但我仍然认为这是你的正确方法。考虑到您正在处理该后端的糟糕 API 设计,您可以将 AngularJS 资源与另一个为您执行此操作的服务包装在一起。
关于angularjs - $resource url 中的查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13147435/