#ionic-framework
Вопрос:
я пытался использовать Chart.js в Ionic 5, посмотрев этот учебник (https://ichi.pro/es/ionic-5-charts-graphs-usando-la-biblioteca-chartjs-102145521332905) Но я получаю эту ошибку:
Код почти идентичен, за исключением имен файлов. Не совсем понимаю, почему это происходит, любая помощь приветствуется.
import { Component, AfterViewInit, ViewChild , ElementRef } from '@angular/core';
import {Chart} from "chart.js";
@Component({
selector: 'app-tab3',
templateUrl: 'tab3.page.html',
styleUrls: ['tab3.page.scss']
})
export class Tab3Page implements AfterViewInit{
@ViewChild('lineCanvas') private lineCanvas: ElementRef;
lineChart: any;
constructor() { }
ngAfterViewInit() {
this.lineChartMethod();
}
lineChartMethod() {
this.lineChart = new Chart(this.lineCanvas.nativeElement, {
type: 'line',
data: {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'November', 'December'],
datasets: [
{
label: 'Sell per week',
fill: false,
//lineTension: 0.1,
backgroundColor: 'rgba(75,192,192,0.4)',
borderColor: 'rgba(75,192,192,1)',
borderCapStyle: 'butt',
borderDash: [],
borderDashOffset: 0.0,
borderJoinStyle: 'miter',
pointBorderColor: 'rgba(75,192,192,1)',
pointBackgroundColor: '#fff',
pointBorderWidth: 1,
pointHoverRadius: 5,
pointHoverBackgroundColor: 'rgba(75,192,192,1)',
pointHoverBorderColor: 'rgba(220,220,220,1)',
pointHoverBorderWidth: 2,
pointRadius: 1,
pointHitRadius: 10,
data: [65, 59, 80, 81, 56, 55, 40, 10, 5, 50, 10, 15],
spanGaps: false,
}
]
}
});
}
}
Вот HTML-код
<ion-content [fullscreen]="true">
<div class="ion-padding">
<ion-card>
<ion-card-header>
Line Chart
</ion-card-header>
<ion-card-content>
<canvas #lineCanvas style="position: relative; height:20vh; width:40vw"></canvas>
</ion-card-content>
</ion-card>
</div>
</ion-content>
Ответ №1:
Chart.js нужно зарегистрировать контроллер перед загрузкой данных,но какова бы ни была внутренняя механика, вот из chart.js документирует правильный способ инициализации диаграммы в машинописном виде :
Также доступен короткий формат регистрации, чтобы быстро зарегистрировать все.
импорт { График, регистрируемые данные } из ‘chart.js’; Диаграмма.регистр(…регистрируемые объекты);
И, наконец, есть отдельный путь, чтобы сделать для вас то же самое, что и выше, в одной строке:
импорт диаграммы из «chart.js/auto»;
источник :https://www.chartjs.org/docs/master/getting-started/integration.html
Ответ №2:
импорт { График, регистрируемые данные } из ‘chart.js’; Диаграмма.регистр(…регистрируемые объекты);
Просто положи это…