Restangurular:埋め込み配列を含むオブジェクトを使用したGetList
-
21-12-2019 - |
質問
私のAngularJSプロジェクトではRestangular GetListメソッドを使用しようとしていますが、API応答は直接配列ではなく配列を含むオブジェクトではないため、エラーが返されます。
{
"body": [
// array elements here
],
"paging": null,
"error": null
}
.
restangularのエラーメッセージは次のとおりです。
Error: Response for getList SHOULD be an array and not an object or something else
.
restangulularを探しているアレイがbody
プロパティの内側にあると伝えることはできますか?
解決
はい、 Restangurular Documentation 。Restangularのように設定できます。
rc.setResponseExtractor(function(response, operation) {
if (operation === 'getList') {
var newResponse = response.body;
newResponse.paging = response.paging;
newResponse.error = response.error;
return newResponse;
}
return response;
});
.
edit :RestangularのAPIが変更されるようになったように見えますが、現在の使用方法は addResponseInterceptor です。渡された関数にいくつかの調整が必要になるかもしれません。
他のヒント
Collin Allen 推奨
app.config(function(RestangularProvider) {
// add a response intereceptor
RestangularProvider.addResponseInterceptor(function(data, operation, what, url, response, deferred) {
var extractedData;
// .. to look for getList operations
if (operation === "getList") {
// .. and handle the data and meta data
extractedData = data.body;
extractedData.error = data.error;
extractedData.paging = data.paging;
} else {
extractedData = data.data;
}
return extractedData;
});
});
. 所属していません StackOverflow