27

次のような API で get パラメータを使用してフィルタの配列を送信する必要があります。

/myList?filters[nickname]=test&filters[status]=foo

今、このようにオブジェクトを直接送信すると:

Restangular.one('myList').get({filters: {
    nickname: 'test',
    status: 'foo'
}});

実際に送信されたクエリは

?filters={"nickname":"test","status":"foo"}

実数配列を送信するには? 代替案を考えるべきですか?

4

4 に答える 4

19

私はそれを行う方法を見つけました。フィルター オブジェクトを反復処理して、名前に [] を含む新しいオブジェクトを作成する必要があります。

var query = {};
for (var i in filters) {
    query['filters['+i+']'] = filters[i];
}

Restangular.one('myList').get(query);

生産:

&filters%5Bnickname%5D=test

誰かがより良い解決策を持っていますか?

于 2013-08-26T15:08:18.820 に答える
11

これを試して:

Restangular.all('myList').getList({filters: {
    nickname: 'test',
    status: 'foo'
}});
于 2013-12-30T13:07:31.537 に答える
7

制御されたパラメーターがほとんどない場合は、この方法を使用できます。

フィルターがほとんどないと仮定します。

    var api = Restangular.all('yourEntityName');
    var params = {  commonWay          : 'value1',
                   'filter[property1]' : filterVariable1,
                   'filter[property2]' : filterVariable2
                 };

    api.getList(params).then(function (data) {
        alert(data);
    });

これがお役に立てば幸いです。

于 2014-01-15T21:28:20.430 に答える