我如何应用groupBy但使用不同的值作为我的键?

时间:2015-02-26 15:30:03

标签: javascript html angularjs date angularjs-ng-repeat

我的HTML代码如下所示:

<div class="content">
  <div class="panel columns small-12" ng-repeat="(key, value) in rse| groupBy: 'unixTime'">
      <h5>{{key}}</h5>
      <li ng-repeat="se in value">
        {{se.name}} ({{se.times}} times)
      </li>
  </div>
</div>

分组依据:https://github.com/a8m/angular-filter

提供

它将提供的数据是一个json对象列表,如下所示:

[
    {
        "name": "test",
        "unixTime": "1422748800",
        "uiTime": "Monday 6th December 2015",
        "times": "1"
    },
    {
        "name": "test",
        "unixTime": "1423094400",
        "uiTime": "Tuesday 1th December 2015",
        "times": "1"
    },
    {
        "name": "test",
        "unixTime": "1423267200",
        "uiTime": "Wednesday 2th December 2015",
        "times": "1"
    }
]

我面临的问题是,将我的UNIX时间分组为MS,因为epoch我按照正确的顺序得到了我需要的时间但是我无法在H5标签中显示用户友好的日期我必须在其中显示LI重复,这意味着日期将不止一次显示。

如果我然后按时间将组更改为“uiTime”而不是自epoch以来用户友好的ms版本,则会以错误的顺序显示它们,例如字母顺序显示“星期一,星期二,星期三”,这显然是错误的顺序。

我如何分组,但使用不同的值作为我的键,甚至将ms从epoch转换为我在视图中的友好的UI友好日期字符串(我知道这是一个不好的做法,因为我在我的服务层和在视图中使用服务是坏的。

希望有人可以提供帮助。 感谢

1 个答案:

答案 0 :(得分:1)

你可以写

<div class="content">
  <div class="panel columns small-12" ng-repeat="(key, value) in rse| groupBy: 'unixTime'">
      <h5>{{value[0].uiTime}}</h5>
      <li ng-repeat="se in value">
        {{se.name}} ({{se.times}} times)
      </li>
  </div>
</div>