作者:HH小娃娃 | 来源:互联网 | 2023-05-24 21:12
默认情况下,$resource.query()
设置为期望成为$resource
对象的对象数组.为了以一种漂亮,安静的方式适应分页,我将GET /api/widgets
端点设置为返回以下对象:
{
currentPage: 1,
perPage: 20,
totalItems: 10039,
items: [{...}, {...}, {...}]
}
有没有办法使它成为angular将知道items
属性是作为$resource
对象的项目数组?
1> Remco Haszin..:
您需要指定自己的自定义操作.
我想你的代码看起来像这样:
factory('Widget', function($resource) {
return $resource('/api/widgets');
});
把它改成这个:
factory('Widget', function($resource) {
return $resource(/api/widgets, null, {
query: {
method: 'GET',
isArray: true,
transformResponse: function(data) {
return angular.fromJson(data).items;
}
}
});
});
所以我做了,设置`isArray:false`并保持返回对象的形状.我遍历了`items in items`并将它们替换为:`data.items [i] = new Widget(item);`它很棒!我真的很感谢你的帮助.