0

я следующую коллекцию:NgRepeat, группа по нескольким датам

[ 
{ 
    "_id": "54efdd4a70726f7af1030000", 
    "sequence_name": "Do Stuff", 
    "calendar": [ 
    "2015-02-28T09:00:00.000Z", 
    "2015-02-28T18:00:00.000Z", 
    "2015-03-01T03:00:00.000Z" 
    ] 
} 
] 

Мне нужно сгруппировать это следующим образом:

{ 
"2015-02-28T09:00:00.000Z": [ 
    { 
    "_id": "54efdd4a70726f7af1030000", 
    "sequence_name": "Do Stuff", 
    } 
], 
"2015-02-28T18:00:00.000Z": [ 
    { 
    "_id": "54efdd4a70726f7af1030000", 
    "sequence_name": "Do Stuff" 
    } 
    ] 
    // key/values keep going for each ... 
} 

Так что я мог бы (надеюсь) отображать данные, как это:

<div ng-repeat='(date, scheds) in prettyDates'> 
    <h6>{{ date | date: 'd MMM' }}</h6> 
    <div>{{ date | date: 'hh:mma' }}</div> 
    <div ng-repeat='s in scheds'> 
    <div class='event-time'>{{ s.start_time | date: 'h a' }}</div> 
    <div class='event-title'>{{ s.sequence_name }}</div> 
    </div> 
</div> 

ли угловой есть способ делать GroupBy, когда есть несколько элементов в группу, или когда группы будут иметь дубликат entrie s?

+0

возможно дубликат http://stackoverflow.com/questions/14800862/how-can-i-group-data-with-an-angular-filter –

+0

Пользователь в этом вопросе не группируется по набору дат. Они группируются только по одной возможной стоимости. То, что я пытаюсь сделать, - это группа значений, а не один атрибут. Этот ответ не помогает мне в моей ситуации. – Rick

ответ

0

Я не думаю, что angularJs поставляется с чем-либо подобным. Вариант будет состоять в том, чтобы использовать lodash или аналогичную библиотеку для группировки в вашем контроллере, а затем просто перебрать результаты.

Проверить эту документацию для GroupBy в lodash: https://lodash.com/docs#groupBy