我正在对一个大型 json 数组进行分组。它可以工作,但在数组的末尾,我得到了一个“未定义”类别。
'The University and Jepson Herbaria
- California Herbs Collection
University of California Museum of Paleontology
- UCMP Vertebrate Collection
undefined
-
-
我无法弄清楚这是从哪里来的。这是我正在使用的代码。
<div ng-repeat="(key,value) in datasources | groupBy: 'institution'" > {{ key }}
<li ng-repeat="collection in value">
{{ collection.name }}
</li>
</div>
有什么想法吗?
我认为这可能是这些人遇到的问题的混合体,但我不太明白这个问题——我是 Angular 和 js 的新手:angular typeahead filter error "undefined is not a function"
更新: 当我将 collection.name 更改为 collections 时(所以我只是转储键的值)
<div ng-repeat="(key,value) in datasources | groupBy: 'institution'" > {{ key }}
<li ng-repeat="collection in value">
{{ collection }}
</li>
</div>
我得到:
'The University and Jepson Herbaria
- (...long value...)
University of California Museum of Paleontology
- (...long value...)
undefined
- {}
- true
它就像循环遍历所有内容,但还有 2 个额外的东西。 groupBy 函数的来源在这里:https://github.com/a8m/angular-filter/blob/master/src/_filter/collection/group-by.js
我在 js 方面的能力还不够,无法搞清楚它的情况。
最佳答案
感谢@james 的帮助!我一整天都被困住了。
我使用工厂返回 json 对象。完成此操作后,还会添加其他一些内容。 Why does angular $resource add extra objects ($promise, $resolve...) to my data response?
重点是 $promise 和 $resolved 被返回。如果您循环使用新对象,这些对象也会随之而来。
要删除 Angular 添加的变量并仅适用于您的数据,请使用:angular.toJson。然后用 JSON.parse 将其转回 json 对象。
$scope.datasources = JSON.parse(angular.toJson(data))
关于javascript - Angular 过滤器 groupby 过滤器返回 "undefined"字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27606954/