Здесь я создал отдельный общий метод для создания диаграмм, поскольку я хочу нарисовать несколько общих диаграмм, данные которых поступают из разных API. Я хочу вызвать это внутри ngAfterViewInit()
. Вот мой общий метод.
createChips(modules, chartNameChartTTV: am4charts.XYChart, divName: string, chartDataInfo: any[], chartValue: any, chartDate: any) {
const am4core = modules[0];
const am4charts = modules[1];
const am4themesAnimated = modules[2].default;
am4core.useTheme(am4themesAnimated);
// DashboardComponent.disposeCharts([this.modificationsChartTTC, this.checkingsChartTTV, this.bookingsChartTTV]);
chartNameChartTTV = am4core.create('divName', am4charts.XYChart);
// const container = am4core.create('line_chart2', am4core.Container);
chartNameChartTTV.width = am4core.percent(100);
chartNameChartTTV.height = am4core.percent(100);
// const chart = container.createChild(am4charts.XYChart);
chartNameChartTTV.padding(0, 0, 0, 0);
chartNameChartTTV.data = [];
for (let i = 0; i < chartDataInfo.length; i++) {
chartNameChartTTV.data.push({date: chartDate , value: chartValue});
// console.log(chart);
}
chartNameChartTTV.colors.list = [
am4core.color('rgba(4, 69, 142, 1)'),
];
// Create axes
const dateAxis = chartNameChartTTV.xAxes.push(new am4charts.DateAxis());
const valueAxis = chartNameChartTTV.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 = chartNameChartTTV.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;
// });
}
Я хочу вызвать это внутри ngAfterViewInit()
ngAfterViewInit() {
this.zone.runOutsideAngular(() => {
Promise.all([
import('@amcharts/amcharts4/core'),
import('@amcharts/amcharts4/charts'),
import('@amcharts/amcharts4/themes/animated'),
import('@amcharts/amcharts4/maps'),
import('@amcharts/amcharts4-geodata/worldLow')
])
.then(modules => {
this.cardCheckingsChart(modules);
this.createChips(modules, chartNameChartTTV: am4charts.XYChart, divName: string, chartDataInfo: any[], chartValue: any, chartDate: any);
// this.cardRevenueChart(modules);
this.createDemandCurve(modules);
this.createMapChart(modules);
})
.catch(e => {
console.error('Error when creating chart', e);
});
});
this.getTopHotelInfo();
this.getCheckingInfo();
this.getRevenueInfo();
}
Но это показывает ошибку. Как я могу использовать this.createChips(modules, chartNameChartTTV: am4charts.XYChart, divName: string, chartDataInfo: any[], chartValue: any, chartDate: any);
этот общий метод внутри ngAfterViewInit ().