Angularjs $resource – 不能将数组作为参数传递

前端之家收集整理的这篇文章主要介绍了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'];

这允许我根据需要检索服务器上的值.

猜你在找的Angularjs相关文章