如何在AngularJS中处理REST API返回对象而不是数组以进行收集?
我正在使用的后端团队实现了一个REST API,它将集合作为对象(而不是数组)返回.
例如,调用GET / some_resources将返回: { id_1: { p1: "lorem",p2: 4 },id_2: { p1: "ipsum",p2: 2 },id_n: { p1: "sic",p2: 7 } } 这种结构限制在Angular中使用,因为你不能利用ng-repeat指令(例如orderBy and filter do not work with object). 对于前面的例子,理想情况下,我宁愿期待一个对象数组: [ {id: "id_1",p1: "lorem",p2: 4},{id: "id_2",p1: "ipsum",p2: 2},{id: "id_n",p1: "sic",p2: 7} ] 这将允许直接使用ngResource服务返回的对象并将其发送回去而不触及其结构.它还允许完全使用ng-repeat指令. 当我要求后端团队更改从对象到数组的集合响应的结构时,他们认为API使用者不应该引导响应结构的设计. 我部分同意他们的论点,所以现在,我找到的唯一解决方案是将对象转换为数组,将此对象用于我的作用域并将数组重新转换回原始对象结构,然后再将其发送回API . 这导致了很多代码样板,我想知道是否有一种“角度方式”来处理这种情况. 解决方法
“他们认为API消费者不应该引导响应结构的设计”
争辩说 – 如果API的唯一消费者当前是前端,那么在添加其他消费者之前,他们有时间将其置于适当的格式.该数据非常适合作为数组而不是对象.我不知道您的数据集可能有多大,但是您不希望将来做的一件事就是在前端操纵对象 – 无论大小.浏览器资源有限,服务器总是可以添加资源. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |