angular - 带管道的 ngx 图表数据

标签 angular angular-pipe ngx-charts

我正在使用带有 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>

最佳答案

`data.series = data.series.filter...` 

是对原始对象的引用。要破坏引用,必须在开头创建 obj 数组的克隆。

关于angular - 带管道的 ngx 图表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48228537/

相关文章:

javascript - 使用angular 2以印度格式显示数字

angular - 隐藏 ngx 高级饼图图例

来自 HTTP 拦截器的 Angular 4 HTTP 请求

angular - 如何使用 mat-sort-header 按日期字符串排序?

angular - 未捕获( promise ): Error: Cannot match any routes. URL 段:应用程序

html - 如何创建带有 Angular 数组的表行?

angular - 如何在 ionic 4 和 angular 7 中正确导入管道?

javascript - 类型错误 : Cannot read property 'toLocaleLowerCase' of undefined

angular - ngx-charts:设置最大数量。在 xAxis 上显示标签/刻度并防止旋转

用于自定义图例的 Angular ngx-charts 选项?