pasar parametros formularios entre directivas comunicacion componentes angularjs restangular

angularjs - parametros - Restangular: getList con objeto que contiene una matriz incrustada



formularios en angular 6 (3)

Creo que deberías usar un customGET de los métodos personalizados

Restangular.all("url").customGET(""); // GET /url and handle the response as an Object

En mi proyecto AngularJS estoy tratando de usar el método getList de Restangular pero está devolviendo un error porque la respuesta de la API no es directamente una matriz sino un objeto que contiene una matriz.

{ "body": [ // array elements here ], "paging": null, "error": null }

El mensaje de error de Restangular es:

Error: Response for getList SHOULD be an array and not an object or something else

¿Es posible decirle a Restangular que la matriz que está buscando está dentro de la propiedad del body ?


Sí, ver la documentación de Restangular . Puedes configurar Restangular como tal:

rc.setResponseExtractor(function(response, operation) { if (operation === ''getList'') { var newResponse = response.body; newResponse.paging = response.paging; newResponse.error = response.error; return newResponse; } return response; });

Edición : parece que la API de Restangular ahora ha cambiado, para mejor, y que el método actual a usar es addResponseInterceptor . Algunos ajustes pueden ser necesarios para la función pasada.


como Collin Allen sugirió que puedes usar addResponseInterceptor esta manera:

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; }); });