javascript - Angular 过滤器 groupby 过滤器返回 "undefined"字段

标签 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>

有什么想法吗?

我认为这可能是这些人遇到的问题的混合体,但我不太明白这个问题——我是 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/

相关文章:

css - AngularJS 编辑模式 css

javascript - 如何为 JavaScript 函数的参数设置默认值并使用更少的参数调用它?

javascript - 我的 Carousel Materialise 不工作。我正在使用最新版本 1.0.0

angularjs - Angular 2 中的动态路由加载失败。 (测试版)

angularjs - AngularJs 组件内无法访问 Groovy 代码

javascript - ng-model 在输入和显示时操纵值

javascript - 如何在 joomla 中提交表单之前验证验证码

javascript - "Simple"文本替换函数

javascript - 锤拖中心

javascript - 如何使用 React 或 Angular 创建仅在需要时加载的可重用画廊