每分钟更新我的电池计时数据的 Angular 方法是什么?

What's the Angular way to update my cell timing data every minute?

我的 Angular 9, mat-table 里有这个。该单元格应该显示创建项目的时间...

<ng-container matColumnDef="date">
  <mat-header-cell *matHeaderCellDef> Posted on </mat-header-cell>
  <mat-cell *matCellDef="let item">{{ getCreatedOn(item) }} ago</mat-cell>
</ng-container>

在ts文件中,我使用的函数是这样的

  getCreatedOn(item: Item): string {
    const timeSince = (new Date()).getTime() - item.created_on_ms;
    return this.getTimeUnitAsStr(timeSince);
  }

问题是这个数据是静态的。也就是说,当页面首次加载时,它可能显示为“37 分钟前”,但对于随后的每一分钟,我希望数据更新以显示“38 分钟前”、“39 分钟前”等。每分钟更新这条特定数据的正确 Angular 方法是什么?

最快的方法是用ngx-moment来使用time ago pipe

请先安装ngx-moment然后使用管道

<ng-container matColumnDef="date">
  <mat-header-cell *matHeaderCellDef> Posted on </mat-header-cell>
  <mat-cell *matCellDef="let item">{{ item.created_on_ms | amTimeAgo }} ago</mat-cell>
</ng-container>