@H_404_2@
我正在使用带有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,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>@H_404_2@
解决方法
`data.series = data.series.filter...`
是对原始对象的引用.要打破引用,必须在开头创建obj数组的克隆.
@H_404_2@ @H_404_2@@H_404_2@
@H_404_2@
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。