web-dev-qa-db-ja.com

RestangularでGETパラメータを送信する

私は私のプロジェクトで Restangular を使用しており、以前はこのコードはオブジェクトの配列を取得するためにうまく機能しました:

_var params = {name: "Stack", surname: "Overflow"}
var service = Restangular.all('users')
service.getList(params)
_

サーバーからの応答は、単なるオブジェクトの配列でした。

_[
 {...},
 {...}
]
_

しかし、今度はページネーションを追加しました。応答には配列ではなく、配列を含むオブジェクトが含まれています。

_{
   totalCount: 500,
   data: [
     {...},
     {...}
   ]
}
_

また、service.getList(params)service.get(params)に変更しました(getListは配列のみを想定しているため)。

そして、この変更後、私のGETパラメータは文字列化されません。つまり、次のようなデバッガリクエストに表示されます。

_users/[object%20Object]_

しかし、以前(getListメソッドを使用した場合)は、期待どおりに機能しました。

_users?name=Stack&surname=Overflow_

ここでの問題は何ですか?

10
MyTitle

私はこれを使用してそれを解決することができました:

var params = {name: "Stack", surname: "Overflow"}
var service = Restangular.all('users')
service.customGET("", params) // first parameter is required, so just provide empty string
14
MyTitle

one()およびgetparams)を使用するだけです。

var params = {name: "Stack", surname: "Overflow"};
var service = Restangular.one('users');
service.get(params).then(function(response) {
   console.log(response);
})
0
perseus

customGETLISTメソッドを使用できます。これを見てください:

// https://myapi.com/users?name=Stack&surname=Overflow

Restangular.all('users').customGETLIST('', {
    name: "Stack", 
    surname: "Overflow"
}).then(function (response) {
    console.log(response);
});

customGETLIST(path、[params、headers]):特定のパスへのGETを実行します。この場合、単一の要素ではなく、配列を取得する必要があります。オプションで、パラメータとヘッダーを設定できます。

ドキュメント: [〜#〜] here [〜#〜]

幸運を!!

0
Sebastián Lara