AngularJS:通过$resource使用数组类型参数发送请求(复选框,多选等)

前端之家收集整理的这篇文章主要介绍了AngularJS:通过$resource使用数组类型参数发送请求(复选框,多选等)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我的GET参数中有一个复选框(client_status)数组时,我在使用AngularJS中的$resource库发送正确序列化的GET请求时遇到问题.

这是我现在在控制器中的代码

$scope.filters = {
    client_status: ["CLIENT_STATUS_FORMER","CLIENT_STATUS_ACTIVE"],client_reference: "e"
}

$scope.records = Client.get($scope.filters,function(data){
    ...
}

以上将发送以下GET请求:

f.json?client_reference=e&client_status=CLIENT_STATUS_FORMER,CLIENT_STATUS_ACTIVE

但是,根据我的理解,上面看起来似乎不是正确的格式.有人可以指导我一点吗?以下是我的期望:

f.json?client_reference=e&client_status%5B%5D=CLIENT_STATUS_ACTIVE&client_status%5B%5D=CLIENT_STATUS_FORMER

非常感谢您的帮助.

托马斯

解决方法

您可以使用$resource完成此操作,方法是将client_status更改为’client_status []’,如下所示:

$scope.filters = {
  'client_status[]': ["CLIENT_STATUS_FORMER",client_reference: "e"
}

我为此创建了一个plunker:http://plnkr.co/edit/QXIaY8XlMUfOy7RNMKKv?p=info

我在那里放了一个虚拟URL,所以如果你在运行plunker时使用Firebug或Chrome开发工具,你会看到http://example.com/api的请求显示正确添加了[]到GET请求中.

在这个问题的答案中注意到类似的解决方案:
https://stackoverflow.com/a/18322252/1866964

猜你在找的Angularjs相关文章