angular - *ngFor 在某些值 [date] 更改时添加某些 div [date] 元素

标签 angular

我有交易 list ,我正在使用 *ngFor 打印它们,截至目前只打印时间。

purchaseRecords = [
  {
    "name": "a13bcd",
    "timestamp": "2019-05-03T04:43:17"
  },
  {
    "name": "e34fgh",
    "timestamp": "2019-05-03T04:53:17"
  },
  {
    "name": "e1234b",
    "timestamp": "2019-05-03T05:43:17"
  },
  {
    "name": "y234nk",
    "timestamp": "2019-05-04T04:43:17"
  }
];



<div *ngFor="let purRecord of purchaseRecords">
   <div>{{purRecord.name}} - {{ purRecord.timestamp | date: 'shortTime' }}</div>
</div>

哪个打印

a13bcd - '9:43 PM'
e34fgh - '9:53 PM'
e1234b - '10:43 PM'
y234nk - '9:43 PM'

如何得到这样的结果?

03/05/2019 // How to get date here in the for loop
a13bcd - '9:43 PM'
e34fgh - '9:53 PM'
e1234b - '10:43 PM'
04/05/2019
y234nk- '9:43 PM'

当日期发生变化时,如何比较当前record.timestamp日期与下一个record.timestamp打印日期?

最佳答案

您可以通过与之前的值进行比较并检查索引来完成。

<div *ngFor="let purRecord of purchaseRecords;let i=index">
  <div *ngIf=" !i || ( purRecord.timestamp | date: 'shortDate') !== (purchaseRecords[i-1].timestamp | date: 'shortDate' ) ">{{ purRecord.timestamp | date: 'shortDate' }}</div>
   <div>{{purRecord.name}} - {{ purRecord.timestamp | date: 'shortTime' }}</div>
</div>

Stackblitz

或者将 ts 文件中的数据分组并根据模板中的数据显示数据。

关于angular - *ngFor 在某些值 [date] 更改时添加某些 div [date] 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55963508/

相关文章:

angular - 如何使用单个提交按钮 Angular2 触发多个响应式(Reactive)表单验证器

javascript - '{}' 类型的参数不可分配给 Angular 8 中类型的参数

angular - 如何通过 Electron 桌面应用程序中的 IpcRenderer 从 Angular 特征组件向 Electron 主进程发送消息

angular - 为什么在尝试将 Bootstrap 模板集成到 Angular 应用程序中时出现此错误?

html - 如何更改 Angular 10 中的 body 标签类(最佳实践)?

javascript - Angular Tap 已弃用

javascript - Angular 2 : Using Jquery in Angular2 : Error: No provider for Token jQuery

excel - 从使用 XLSX 上传的 excel 中获取 header

javascript - 如何在 Angular 中实现模板变量?

javascript - Angular4 - 如何从文档主体中删除 Bootstrap 注入(inject)的类?