angular - 在 ngFor Angular 上按 start_date 排序

标签 angular

在选择可用日期部分,我有一个如下所示的数组日期。 available date

ngFor上的代码

<div *ngFor="let date of tripdetail.trip_availabledate; let i = index;">
   <a [ngClass]="{'active': date.status}" class="btn btn-block" (click)="keyPress('currentDateSelected', i)">{{date.start_date | date:'dd MMM yyyy'}} - {{date.end_date | date:'dd MMM yyyy'}}</a>
</div>

问题是,如何使用 ngFor 上的 startdates 对这些可用日期进行排序?

最佳答案

尝试这样:

在 Controller 中排序:

ngOnInit() {
    this.tripdetail.trip_availabledate = this.tripdetail.trip_availabledate.sort((a: any, b: any) =>
        new Date(a.start_date).getTime() - new Date(b.start_date).getTime()
    );
}

您也可以使用管道尝试此操作。

使用管道排序

按日期管道排序:

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'sortBydate'
})
export class SortBydatePipe implements PipeTransform {

  transform(value: any, key?: any): any {
    return value.sort(
      (a: any, b: any) =>
        new Date(a[key]).getTime() - new Date(b[key]).getTime()
    );
  }

}

模板:

<div *ngFor="let date of tripdetail.trip_availabledate | sortBydate  : 'start_date'; let i = index;">
   <a [ngClass]="{'active': date.status}" class="btn btn-block" (click)="keyPress('currentDateSelected', i)">{{date.start_date | date:'dd MMM yyyy'}} - {{date.end_date | date:'dd MMM yyyy'}}</a>
</div>

<强> Working Demo

关于angular - 在 ngFor Angular 上按 start_date 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58499341/

相关文章:

node.js - 错误 : Metadata version mismatch for module @ionic-native/core/decorators. d.ts

angular - 嵌套路线立即消失而不是播放:leave animation

angular - 在 angular 项目中检测浏览器刷新?

java - 包括带有 java actions 和 jsp 的 Angular 2

javascript - Angular 2 翻译库?

angular - 如何禁用nz-zorro-antd的select控件的下拉菜单?

angular - @types/googlemaps/index.d.ts' 不是模块

html - Primeng p-dropdown 指令不显示所选值

angular material 2 自定义主题按钮对比

css - Angular 2 Material - 如何居中进度微调器