NgRepeat,按多个日期分组

NgRepeat, group by multiple dates

本文关键字:日期 NgRepeat      更新时间:2023-09-26

我有以下集合:

[
 {
  "_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>

当有多个项目要分组时,或者当组将有重复的条目时,angular是否有方法进行分组?

我不认为angularJs有这样的东西。一种选择是使用lodash或类似的库在控制器中进行分组,然后循环显示结果。

在lodash中查看groupBy的此文档:https://lodash.com/docs#groupBy