我正在使用以这种格式返回 JSON 数据的 API:
{
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();
然后,在视图中,我可以像这样显示数据:
<ul>
<li ng-repeat="entity in entities.data">{{entity.title}}</<li>
</ul>
一切正常,但是:
- 我宁愿只
entities.data
向视图公开内容,而不是整个entities
对象。如何拦截 GET 请求返回的数据以在填充之前$scope.entities
对其进行修改? - 相关问题:由于我正在获取一组数据,因此使用它
Entity.query()
而不是Entity.get()
. 但是如果我Entity.query()
在上面的代码中使用,我会收到一个错误“TypeError: Object # has no method 'push'”。这是有道理的,因为 API 返回的是对象而不是数组(因此,对象上没有“推送”方法)。同样,如果我可以.data
从响应中提取属性,我将有一个数组。
根据Dan Boyon 的这些指示,我设法自定义默认$resource
服务并覆盖 .get() 或 .query() 方法,但我不确定从那里去哪里。