#javascript #angular #ionic2 #chart.js #ng2-charts
#javascript #угловой #ionic2 #chart.js #ng2-диаграммы
Вопрос:
Я пытаюсь использовать базовый пример NG2-Charts (http://valor-software.com/ng2-charts /)
Я скопировал вставленную HTML-часть
<div style="display: block">
<canvas baseChart
[datasets]="barChartData"
[labels]="barChartLabels"
[options]="barChartOptions"
[legend]="barChartLegend"
[chartType]="barChartType"
(chartHover)="chartHovered($event)"
(chartClick)="chartClicked($event)"></canvas>
и часть машинописного текста
public barChartOptions:any = {
scaleShowVerticalLines: false,
responsive: true
};
public barChartLabels:string[] =
['2006', '2007', '2008', '2009', '2010','2011', '2012'];
public barChartType:string = 'bar';
public barChartLegend:boolean = true;
public barChartData:any[] = [
{data: [65, 59, 80, 81, 56, 55, 40], label: 'Series A'},
{data: [28, 48, 40, 19, 86, 27, 90], label: 'Series B'}
];
// events
public chartClicked(e:any):void {
console.log(e);
}
public chartHovered(e:any):void {
console.log(e);
}
public randomize():void {
// Only Change 3 values
let data = [
Math.round(Math.random() * 100),
59,
80,
(Math.random() * 100),
56,
(Math.random() * 100),
40];
let clone = JSON.parse(JSON.stringify(this.barChartData));
clone[0].data = data;
this.barChartData = clone;
/**
* (My guess), for Angular to recognize the change in the dataset
* it has to change the dataset variable directly,
* so one way around it, is to clone the data, change it and then
* assign it;
*/
}
Я запускаю npm install ng2-charts —save, npm install chart.js —сохранить
Я также импортирую ChartsModule в app.module.ts
import { ChartsModule } from 'ng2-charts/ng2-charts';
@NgModule({
imports: [ChartsModule]
})
У кого-нибудь есть идеи о том, как это исправить? Спасибо
Комментарии:
1. Пожалуйста, взгляните на следующий ответ на вопрос # 440 на их github.
2. Тем не менее, он не работает. Он также показывает ошибку, которая «Не может быть привязана к «datasets», поскольку это неизвестное свойство «canvas»».
3. Вы создали проект с помощью angular-cli? Если это так, в файле angular-cli.json, в разделе «скрипты», попробуйте добавить это: «../node_modules/chart.js/src/chart.js »
Ответ №1:
Вторая проблема в комментариях
Он также показывает ошибку, которая «Не может привязаться к «datasets», поскольку это не является известным свойством «canvas»
вероятно, это связано с тем, что ChartsModule не импортируется в модуль, который отображает диаграмму.
Я столкнулся с той же первоначальной проблемой и смог преодолеть ее, добавив следующее в свой накопительный конфигурационный файл
plugins: [
nodeResolve({jsnext: true, module: true}),
commonjs({
include: ['node_modules/rxjs/**','node_modules/ng2-charts/**'],
namedExports: {'node_modules/ng2-charts/ng2-charts.js': ['ChartsModule']}
}),
uglify()
]
Документация для этой библиотеки могла бы быть лучше.
Я надеюсь, что сообщение может помочь любому, кто сталкивается с подобными проблемами
Комментарии:
1. ссылка не работает