如何将数组参数传递给AngularJS $资源

chr*_*ony 13 angularjs

当我将数组传递给资源操作时...它不会将数组参数转换为URL参数数组

var Product = $resource('path/products');
Product.query({ids: [1,2,3]})
Run Code Online (Sandbox Code Playgroud)

而不是得到:

path/products?ids[]=1&ids[]=2ids[]=3
Run Code Online (Sandbox Code Playgroud)

我越来越:

path/products?ids=1&ids=2ids=3
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何解决这个问题?

Sha*_*Roy 22

您可以使用$ resource传递数组

var searchRequest = $resource('/api/search/post', {}, {
    'get': {method: 'GET'}
});
searchRequest.get({'ids[]':[1,2,3]});
Run Code Online (Sandbox Code Playgroud)

然后你得到请求网址

/api/search/post?ids%5B%5D=1&ids%5B%5D=2&ids%5B%5D=3
Run Code Online (Sandbox Code Playgroud)

你得到%5B%5D而不是[]

如果你期望返回array而不是object那么你应该使用

'get': {method: 'GET', isArray: true}
Run Code Online (Sandbox Code Playgroud)

  • 不错,谢谢!但是你为什么要标记你的 GET 路由`/post`?xD (2认同)