Здесь я передаю 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;
}