是否可以在ngResours查询中使用重复参数

时间:2014-06-27 03:25:13

标签: javascript angularjs ngresource

我正在使用Angular和ngResource,我有一个api url:

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

我怎么能用两个(不是uniq)params'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) {
    //...
});

这是有效的,但问题在于我如何发送params - 作为对象:{inState:'TRANSIENT'} 我不能写像

这样的东西
{inState: 'TRANSIENT', inState: 'FINAL'}

因为字段必须是uniq

P.S。我知道可以用$ http来完成。

2 个答案:

答案 0 :(得分:1)

如何做到这一点:

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

示例:

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

答案 1 :(得分:0)

不确定您是否可以控制消耗参数的内容,但是如果您这样做,可以尝试将参数作为包含对象数组的对象传递,如下所示:

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

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