Restangular: getList with object containing embedded array

前端 未结 3 2250
渐次进展
渐次进展 2020-12-15 05:21

In my AngularJS project I\'m trying to use the Restangular getList method but it\'s returning an error because the API response is not directly an array but an object contai

相关标签:
3条回答
  • 2020-12-15 05:43

    Yes, see the Restangular documentation. You can configure Restangular like so:

    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: It seems Restangular's API is now changed, for the better, and that the current method to use is addResponseInterceptor. Some adjustments might be needed to the function passed.

    0 讨论(0)
  • 2020-12-15 05:52

    as Collin Allen suggested you can use addResponseInterceptor like this:

        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;
            });
    
    });
    
    0 讨论(0)
  • 2020-12-15 05:53

    I think you should use a the customGET from the Custom Methods

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

    0 讨论(0)
提交回复
热议问题