Я пытался выполнить Restangular GET с несколькими параметрами запроса (для простой разбивки на страницы), и это кажется невозможным - по крайней мере, с тем, что я пытаюсь сделать. Вот что я пытаюсь сделать:
Restangular.all('elevation').get({ pageParam: page, pageSizeParam: pageSize }).then(function(data) {
console.log(data);
});
С ожидаемым ответом, выглядящим примерно так:
{ totalRecords: 233, elevations: {...} }
Это не работает и приводит к следующему:
GET http://localhost:24287/elevation/[object%20Object] 404 (не Найденный)
Я также пытаюсь использовать customGET
, что приводит к той же проблеме, что и выше.
Единственный способ передать несколько параметров запроса — использовать getList
. К сожалению, при использовании getList
неудивительно, что возникает следующая ошибка:
Ошибка: ответ для getList ДОЛЖЕН быть массивом, а не объектом или чем-то еще
Чтобы решить эту проблему, в документации Restangular указано Мой ответ на самом деле содержит некоторые метаданные. Как мне получить данные в этом случае? раздел, который мне нужен для использования addResponseInterceptor
, который я сделал следующим образом:
RestangularProvider.addResponseInterceptor(function(data, operation, what, url, response, deferred) {
var newResponse = [];
if(response.data.totalRecords !== undefined) {
newResponse.elevationData= {};
newResponse.elevationData.totalRecords = response.data.totalRecords;
newResponse.elevationData.elevations = response.data.elevations;
}
return newResponse;
});
После прыжков через обручи это запутанное решение действительно работает. Нет ли более простого способа просто вызвать Restangular get
с несколькими параметрами запроса и получить возвращаемый объект?
На данный момент было бы намного проще отказаться от Restangular и просто использовать сервис $http следующим образом:
$http.get('http://localhost:24287/elevation?page=' + page + '&pageSize=' + pageSize).then(function(result) {
console.log(result.data.totalRecords);
console.log(result.data.elevations);
});
Хотя я действительно хочу найти лучший способ сделать это с Restangular.
Благодарим за любую идею! Спасибо!