我正在使用带有 ngx-charts 数据数组的过滤器管道。数据按 2 个日期过滤:fromDate 和 toDate。使用使数组更小的日期进行过滤时,管道工作正常,但是当我首先使用较小的日期范围进行过滤,然后再次使范围变大时,管道不适用于原始数组,但适用于已过滤的数组。
我已经做过其他点子,但从未遇到过这个问题,我不确定这里出了什么问题。也许你们中的某个人可以帮助我。
管道:
export class DateInRangePipe implements PipeTransform {
transform(obj: any[], from: Date, to: Date): any[] {
if (obj && from && to) {
obj.forEach(data => {
data.series = data.series.filter((item: any) => {
return this.inRange(item.name, from, to);
});
});
}
return [...obj];
}
inRange(date: Date, from: Date, to: Date): boolean {
return date.getTime() >= from.getTime() &&
date.getTime() <= to.getTime() ? true : false;
}
}
Chart.component.html 部分
<ngx-charts-line-chart
[view]="view"
[scheme]="colorScheme"
[results]="multi | dateinrangePipe: from: to"
[gradient]="gradient"
[xAxis]="showXAxis"
[yAxis]="showYAxis"
[legend]="showLegend"
[showXAxisLabel]="showXAxisLabel"
[showYAxisLabel]="showYAxisLabel"
[xAxisLabel]="xAxisLabel"
[yAxisLabel]="yAxisLabel"
[autoScale]="autoScale"
(select)="onSelect($event)">
</ngx-charts-line-chart>