Я использую API, который возвращает данные JSON в этом формате:
{
paging: {
previous: null,
next: null
},
data: [
{ title: 'First Item' },
{ title: 'Second Item' },
...
]
}
Я использую службу Angular $resource для получения этих данных.
Мой код -, расположенный в контроллере -, выглядит примерно так:
var Entity = $resource('/api/entities');
var entities = $scope.entities = Entity.get();
И затем в представлении я могу отобразить данные вот так:
- {{entity.title}}
-
Все работает нормально, но:
entities.data
, а не весь объект entities
. Как я могу перехватить данные, возвращаемые запросом GET, чтобы изменить их до того, как они будут заполнены $scope.entities
?Entity.query()
вместо Entity.get()
. Но если я использую Entity.query()
в приведенном выше коде, я получаю сообщение об ошибке «TypeError :Object #не имеет метода «push»». Это имеет смысл, так как API возвращает объект вместо массива (, следовательно, нет метода «проталкивания» для объекта ). Опять же, если бы я мог извлечь атрибут .data
из ответа, у меня был бы массив.Следуя этим указаниям Дэна Бойона, мне удалось настроить службу по умолчанию $resource
и переопределить методы.get ()или.query (), но я не уверен, с чего начать. там.