Angular Аргумент amCharts типа 'XYChart' не может быть назначен параметру типа 'new () => Sprite' - PullRequest
0 голосов
/ 27 марта 2020

Здесь я передаю private ChartTTV: am4charts.XYChart; в const chart = this.modificationsChartTTV.createChild(this.ChartTTV); Я заменил //const container = am4core.create('line_chart1', am4core.Container); строку на this.ChartTTV = am4core.create('line_chart1', am4core.Container);, потому что я написал отдельный метод для disposeCharts Но он показывает ошибку вроде

Аргумент типа 'XYChart' не может быть назначен параметру типа 'new () => Sprite'. Тип «XYChart» не соответствует подписи «new (): Sprite». Это мой кодовый блок.

    private ChartTTV: am4charts.XYChart;

        static disposeCharts(charts: am4charts.XYChart[]) {
          for (const chart of charts) {
            if (chart) {
           chart.dispose();
         }
       }
    }

   ngOnDestroy() {
    this.zone.runOutsideAngular(() => {
      DashboardComponent.disposeCharts([this.ChartTTV]);
    });
  }

        cardBookingsChart(modules) {

        const am4core = modules[0];
        const am4charts = modules[1];
        const am4themesAnimated = modules[2].default;
        am4core.useTheme(am4themesAnimated);
        this.ChartTTV = am4core.create('line_chart1', am4core.Container);
        //const container = am4core.create('line_chart1', am4core.Container);
        this.ChartTTV.width = am4core.percent(100);
        this.ChartTTV.height = am4core.percent(100);
        const chart = this.ChartTTV.createChild(this.ChartTTV);
        chart.padding(0, 0, 0, 0);
        chart.data = [];

        const params = [];
        params.push({code: 'curveType', name: 'booking'});
        params.push({code: 'frequency', name: 'DAY'});
        params.push({code: 'bookingFrom', name: '2017-01-01'});
        params.push({code: 'bookingTo', name: '2020-01-01'});
        this.dashboardServiceHandler.getTxnValueSeriesByLevel([], params).subscribe(
        bookings => {
          console.log(bookings);
          this.checkingInfo = bookings;
          console.log(this.checkingInfo);
          this.cardBookingsChart(modules);
        });
        for (let i = 0; i < this.checkingInfo.length; i++) {

        const modification = this.checkingInfo[i];
        console.log(modification);
       chart.data.push({date: this.checkingInfo[i].time , value: this.checkingInfo[i].ttv});
       }

        chart.colors.list = [
          am4core.color('rgba(43, 144, 254, 1)'),
        ];

        // Create axes
        const dateAxis = chart.xAxes.push(new am4charts.DateAxis());
        const valueAxis = chart.yAxes.push(new am4charts.ValueAxis());

        valueAxis.renderer.grid.template.disabled = true;
        valueAxis.renderer.labels.template.disabled = true;
        dateAxis.renderer.grid.template.disabled = true;
        dateAxis.renderer.labels.template.disabled = true;

    // Create series
        const series = chart.series.push(new am4charts.LineSeries());
        series.dataFields.valueY = 'value';
        series.dataFields.dateX = 'date';
        series.tooltipText = '{value';
        series.fillOpacity = 1;
        series.strokeWidth = 2;
        series.minBulletDistance = 15;
      }
...