使用具有多个查询参数的Angular ng-resource

时间:2015-04-16 11:42:45

标签: angularjs model-view-controller web

我正在尝试使用4个参数向服务器发送请求。它似乎工作少于4,但我无法使用4或更多。 以下是片段:

        historyy: $resource('/history/:user.:item.:count.:cost', {

            user: '@userr',
            item: '@itemm',
            count: '@countt',
            cost: '@costt'
        }

调用RestService:

   RestServices.historyy.get({userr: "Asd",itemm: $scope.item.id,countt: amount,costt: '0' });

执行此操作时,URL如下所示:

http://localhost:8080/history/...?costt=0&countt=6&itemm=1&userr=Asd

为什么要添加这些疯狂的(......?)?当我删除其中一个参数(无论哪一个)时,它都能正常工作。

1 个答案:

答案 0 :(得分:1)

您可以使用query(请参阅:doc

<强>资源

$resource('/history/');

拨打

RestServices.historyy.query({user: "Asd", item: $scope.item.id, ...}, function(results) {
  //on success
});

<强>结果

/history?user=Asd&item=ExampleItem...

Spring REST控制器

@RestController
@RequestMapping(value = "/history", produces = MediaType.APPLICATION_JSON_VALUE)
public class SomeRestController {

    @ResponseBody
    @RequestMapping(method = RequestMethod.GET)
    @JsonView(View.List.class)
    public List<SomeThing> getSomething(
        @RequestParam(value = "user", required = true) String user,
        @RequestParam(value = "item", required = true) String item, ...) {...}

您可以在此处找到更多信息:Using $resource.query with params object