0

我将 Angular 与 ngResource 一起使用,并且我有一个 api url:

GET http://my.com/rest/items?inState=TRANSIENT&inState=FINAL

我怎么能用两个(不是唯一的)参数“inState”进行查询?

这是我的资源工厂:

.factory('Resource', function ($resource, REST_URL) {
    return {
        items: $resource(REST_URL + 'rest/items',
            {},
            {
                get: {method: "GET", params: {inState: '@inState'}}
            })
    };
})

这就是我所说的方式:

//GET http://my.com/rest/items?inState=TRANSIENT
Resource.items.get({inState: 'TRANSIENT'}, function (data) {
    //...
}, function (responce) {
    //...
});

这是可行的,但问题在于我如何发送参数 - 作为对象:{inState:'TRANSIENT'} 我不能写类似的东西

{inState: 'TRANSIENT', inState: 'FINAL'}

因为字段必须是唯一的

PS 我知道它可以用 $http 来完成。

4

2 回答 2

1

这就是如何做到这一点:

{inState: ['TRANSIENT', 'FINAL']

例子:

//GET http://my.com/rest/items?inState=TRANSIENT&inState=FINAL
Resource.items.getHistory({inState: ['TRANSIENT', 'FINAL']}, function (data) {
    //...
}, function (responce) {
    //...
});
于 2014-06-27T22:44:16.310 回答
0

不确定您是否可以控制使用参数的内容,但如果可以,您可以尝试将参数作为对象传递,其中包含对象数组,如下所示:

{ states : [{inState : 'TRANSIENT'}, {inState : 'FINAL'}]}

然后只需遍历states数组并检查每个inState属性。

于 2014-06-27T03:59:34.637 回答