2014-12-22 3 views
1

Я группирую большой массив json. Его работа, но в конце массива я получаю категорию «неопределенные».Фильтр группового фильтра углового фильтра возвращает поле «undefined»

'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 typeahead filter error "undefined is not a function"

UPDATE: Когда я изменить 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 

его, как и его зацикливание через все, кроме двух дополнительных вещей. Источник для функции groupBy находится здесь: https://github.com/a8m/angular-filter/blob/master/src/_filter/collection/group-by.js

Я недостаточно компетентен в js, чтобы сделать головы или хвосты.

+0

Вы должны отправить то, что в 'datasources' или, по крайней мере записи, которая показывает, что проблема –

+0

которые есть места, чтобы сбросить большой (не очень большие, но не маленькие) файлы в формате JSON? – yoshi

+0

См. Http://jsonfiddle.net и/или http://pastebin.com/ –

ответ

0

Спасибо @james за помощь! Я весь день застрял.

Я использовал фабрику, чтобы вернуть объект json. Когда это будет сделано, некоторые другие вещи будут привязаны. Why does angular $resource add extra objects ($promise, $resolve...) to my data response?

Точка $ обещание и $ resolved возвращаются. Если вы зацикливаетесь на новом объекте, они приходят на прогулку.

Чтобы сгруппировать переменные, которые Угловая добавляет и работает только с вашими данными, используйте: angular.toJson. Затем верните его к объекту json с помощью JSON.parse.

$scope.datasources = JSON.parse(angular.toJson(data)) 
Смежные вопросы