Angular NgRessource с разбитыми на страницы результатами из рамки django rest

Мой api в основном возвращает что-то вроде этого:

GET /api/projects/
{
"count": 26, 
"next": "http://127.0.0.1:8000/api/projects/?page=2", 
"previous": null, 
"results": [
 {
 "id": 21, 
 "name": "Project A",
 ...
 },
 {
 "id": 19, 
 "name": "Project B",
 ...
 },
 ...
]
}

Используя NgResource, я могу запросить api и получить данные следующим образом:

var PROJECT = $resource('/api/projects/:id/', {id:'@id'},{
 query : {
 method : 'GET',
 isArray : false
 }
});
factory.project_list = function(callback) {
 PROJECT.query({},function(project_list){
 factory.project_list = project_list.results;
 callback();
 });
};

Мои разные проекты теперь доступны в factory.project_list. Проблема здесь в том, что каждый элемент в factory.project_list не является элементами ngResource. Поэтому я не могу вызывать такие методы, как $save(),. $Update()...

Я видел функцию transformResponse(), но я не могу заставить ее работать легко...

Есть ли у вас какие-либо идеи, какой может быть лучший подход здесь?

1 ответ

Это то, что сработало для меня:

app.config(['$resourceProvider', function($resourceProvider) {
 $resourceProvider.defaults.stripTrailingSlashes = false;
}]);
services.factory('Project', ['$resource',
 function($resource) {
 return $resource('api/project/:id/', {}, {
 query: {
 method: 'GET',
 url: 'api/projects/',
 isArray: true,
 transformResponse: function(data, headers) {
 return angular.fromJson(data).results;
 },
 }, 
 });
 }
]);

licensed under cc by-sa 3.0 with attribution.