Добавьте ng2-диаграммы в приложение Angular 7 - PullRequest
1 голос
/ 22 июня 2019

У меня есть приложение Angular 7, и я хочу использовать ng2-charts для рисования диаграмм. Мое приложение доступно здесь, на GitHub .

Я следовал руководству по установке библиотеки, которая доступна здесь :

npm install --save ng2-charts
npm install --save chart.js

Я создал компонент и добавил следующий код:
Шаблон

    <div style="display: block;" class="chart">
  <canvas baseChart

          [datasets]="labelMFL"
          [labels]="lineChartLabels"
          [options]="lineChartOptions"
          [chartType]="lineChartType"
          (chartHover)="chartHovered($event)"
          (chartClick)="chartClicked($event)"></canvas>
</div>

Класс компонентов:

    import { Component, OnInit } from '@angular/core';


@Component({
  selector: 'app-bar-chart',
  templateUrl: './bar-chart.component.html',
  styleUrls: ['./bar-chart.component.less']
})
export class BarChartComponent {

  public SystemName: string = "MF1";
  firstCopy = false;

  // data
  public lineChartData: Array<number> = [ 1,8,49,50,51];

  public labelMFL: Array<any> = [
      { data: this.lineChartData,
        label: this.SystemName
      }
  ];
  // labels
  public lineChartLabels: Array<any> = ["2018-01-29 10:00:00", "2018-01-29 10:27:00", "2018-01-29 10:28:00", "2018-01-29 10:29:00", "2018-01-29 10:30:00" ];

  constructor(  ) { }

  public lineChartOptions: any = {
    responsive: true,
    scales : {
      yAxes: [{
        ticks: {
          max : 60,
          min : 0,
        }
      }],
      xAxes: [{
        min: '2018-01-29 10:08:00', // how to?
      //  max: '2018-01-29 10:48:00', // how to?
        type: 'time',
        time: {
          unit: 'minute',
          unitStepSize: 10,
          displayFormats: {
            'second': 'HH:mm:ss',
            'minute': 'HH:mm:ss',
            'hour': 'HH:mm',
          },
        },
        }],
    },
  };

   _lineChartColors:Array<any> = [{
       backgroundColor: 'red',
        borderColor: 'red',
        pointBackgroundColor: 'red',
        pointBorderColor: 'red',
        pointHoverBackgroundColor: 'red',
        pointHoverBorderColor: 'red'
      }];



  public lineChartType = 'line';

  public chartClicked(e: any): void {
    console.log(e);
  }
  public chartHovered(e: any): void {
    console.log(e);
  }

}

Затем я создал его в другом компоненте:

<app-card title="Graph" showTextContent="false">
          <app-bar-chart></app-bar-chart>
      </app-card>

Когда я запускаю приложение, я получаю следующую ошибку: enter image description here

Я думал, что есть некоторые проблемы с chart.js, но я не знаю, нужно ли мне его где-то добавлять, например, файл angular.json.
Я что-то упустил в конфигурации?
Есть ли проблемы с версией библиотек?

1 Ответ

1 голос
/ 23 июня 2019

У меня была такая же проблема. Оказывается, система очень требовательна к соответствующим версиям пакета диаграмм. После той же установки, что и вы, мой package.json имел следующее:

"chart.js": "^2.8.0",
"core-js": "^2.6.9",
"ng2-charts": "^2.3.0", (or something greater than 2.0.0)

Все мои угловые модули - 7.2.0. Я попытался откатить ng2-диаграммы:

npm install ng2-charts@2.0.0

Это исправлено. Мне пришлось попробовать несколько версий.

Эта страница была полезна: https://github.com/valor-software/ng2-charts/issues/750

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...