无法读取角度和高度图未定义的属性'data'

问题描述 投票:0回答:1

我不确定我的错误在哪里。我一直将此错误与我的系列相关联,说该系列中的数据未定义。

core.js:1598 ERROR TypeError: Cannot read property 'data' of undefined
at Function.push../src/app/simulation/results/chart/chartUtils.ts.ChartUtils.isDateInSeries (chartUtils.ts:210)
at chartUtils.ts:149
at Array.forEach (<anonymous>)
at Function.push../src/app/simulation/results/chart/chartUtils.ts.ChartUtils.getSeries (chartUtils.ts:145)
at Function.push../src/app/simulation/results/chart/chartUtils.ts.ChartUtils.parseDataToSeries (chartUtils.ts:111)
at ChartComponent.push../src/app/simulation/results/chart/chart.component.ts.ChartComponent.createChartFromCsv (chart.component.ts:28)
at ChartComponent.set [as chartData] (chart.component.ts:17)
at updateProp (core.js:10303)
at checkAndUpdateDirectiveInline (core.js:10066)
at checkAndUpdateNodeInline (core.js:11363)

我的方法是否包含与我使用Highcharts的方式有关的任何类型的错误?

我已经包含了从我的打字稿文件中导致控制台错误的方法。当我调用console.log(series.data)时,它显示错误并且不会使我的图表出现...

import { SimulationResults, Application, ENodeBFailureResults } from "../../../../../../server/app/common/dataStructures";
import * as Highcharts from "highcharts";
import * as Highstock from "highcharts/highstock";

export interface SeriesValue {
    date: number;
    count: number;
}

export interface Series {
    name: string;
    data: SeriesValue[];
    tooltip: {
        valueDecimals: number,
        valueSuffix: string
    };
    stack: string;
}

private static isDateInSeries(series: Highcharts.SeriesOptions, date: number): number {

        console.log(series.data);                                  //series.data undefined??
        for (let i: number = 0; i < series.data.length; ++i) {

            if ((series.data[i] as Highcharts.DataPoint).x === date) {
                return i;
            }
        }

        return -1;
    }

这是实现此方法的地方:

private static getSeries(name: string, index: number, parsedData: number[][], /*timeFramesToDate: Map<number, number>,*/
    results: SimulationResults, eNodeBCodeID: number): Highcharts.SeriesOptions[] {
    const series: Highcharts.SeriesOptions[] = [];

    results.parameters.Applications.forEach((application: Application) => {
        const serie: Highcharts.SeriesOptions = this.getNewSeries(application.ApplicationName, name);

        for(let i = 0; i < series.length; i++) ((timeframe: number) => {
            serie.data.push({ x: (timeframe), y: 0 });
        });

        series.push(serie);
    });
    parsedData.forEach((line: number[], i: number) => {
        if (line[GraphColumn.eNodeBCodeID] === eNodeBCodeID) {
            const lineAppId: number = line[GraphColumn.application];
            const lineDate: number = line[GraphColumn.startTimeFrame];
            const dateIndexInSeries: number = this.isDateInSeries(series[lineAppId], lineDate);  //implementation of method isDateInSeries
            (series[lineAppId].data[dateIndexInSeries] as Highcharts.DataPoint).y += line[index];
        }
    });

    return series;
}
angular database highcharts web-applications series
1个回答
0
投票
的属性'data'

这意味着您的系列是未定义的,这就是为什么它提供未定义的错误属性数据的原因。

© www.soinside.com 2019 - 2024. All rights reserved.