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

标签 angularjs

由于运行经典 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/

相关文章:

javascript - 如何让 UI-Router 打开一个标签页

javascript - 如果我将一个元素从一个容器移动到另一个容器,是否存在范围问题?

angularjs - 在自定义指令中使用 ng-change 和 ng-model - 摘要循环

javascript - angularui bootstrap datepicker 弹出窗口未在日期选择时关闭

javascript - md-select 不更新 ng-value 文本

javascript - Canvas 上的 FabricJS AngularJS 事件

javascript - 在 Angular.js 的 ngModel 中使用表达式

javascript - AngularJS - 如何在按钮单击时获取对象

javascript - 应禁用 AngularJS 提交表单中的开始日期结束日期验证

javascript - AJAX 错误 : TypeError: 'arguments' , 'callee' 和 'caller' 无法在此上下文中访问