angular-filter groupby filter返回“未定义”字段

时间:2014-12-22 16:52:04

标签: javascript angularjs

我正在对一个大的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>

有什么想法吗?

我认为这可能是这个家伙所遇到的问题的重新混合,但我并没有完全关注这个问题 - 我是角度和js的新手:angular typeahead filter error "undefined is not a function"

更新: 当我将collection.name更改为集合时(所以我只是转储键的值)

<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中没有足够的能力去做它的正面或反面。

1 个答案:

答案 0 :(得分:0)

感谢@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))