Angularjs $resource – 不能将数组作为参数传递
我试图从AngularJS传递一个数组到我们的API.然而,当发送时,重复参数而不是作为数组发送.这是我的代码:
angular.module('sigApp.services',['ngResource']). // Fetch cases from server service('caseFetcher',['$resource',function($resource) { this.getCases = function(params) { console.log('params: ',params); return $resource('/v1/cases/',params); }; }]); 这是生成的URL(缩写):/ v1 / cases?status = OPEN& status = HELD 这是我想要的URL:/ v1 / cases?status [0] = OPEN& status [1] = HELD(aka?status [0] = OPEN& status1 = HELD) 以下是上面代码中记录的对象的屏幕截图: 我已经尝试了最新版本的angularjs(1.2rc1),并尝试了Restangular插件.无论我尝试什么,我得到的参数通过多次,而不是数组格式.我们的API无法使用相同键的多个值. 有任何想法吗? 编辑:当另一个问题(AngularJS: ngResource and array of object as params to URL)不是这样的时候,有几个人把这个标记为重复.另一个问题涉及通过POST发送数组,并且我正在尝试执行一个GET请求(默认情况下设置为isArray:true),并且我想只传递一个数组的参数,哪个答案似乎不帮我.有人可以帮忙吗? 更新我在下面回答了我自己的问题,但评论说,我给任何谁遇到这个问题的更多的信息.我们正在使用Play Framework 2.1作为后端.我无法生成最初发布在上面的编号数组,但是可以让它只是一个非索引数组,因此这是最终生成的URL. / v1 / cases?status [] = OPEN& status [] = HELD(aka?status [] = OPEN& status [] = HELD) 希望这有助于别人
我通过改变params被设置为$资源的方式来解决了我自己的问题.代替:
$scope.params.status = ['OPEN','HELD']; 我用了: $scope.params["status[]"] = ['OPEN','HELD']; 这允许我根据需要检索服务器上的值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |