Chart.js не вызывает plugins.datalabels.formatter () в моем приложении Ionic 4 / Angular - PullRequest
0 голосов
/ 09 апреля 2019

Я хочу нарисовать проценты на круговых диаграммах Chart.js круговой диаграммы в моем приложении Ionic 4 / Angular.

Моя Chart.js версия 2.8.0

У меня есть следующий код, который я нашел здесь , где я вижу, как он работает. Но когда я его добавляю, мой formatter() просто не вызывается (я добавил точку останова, а она просто не вызывается)

        public ngOnInit() : void {
        this.data = {
          datasets: [{
            data: [10, 20, 30, 50],
            backgroundColor: [
              'green',
              'rgba(54, 162, 235, 0.2)',
              'rgba(255, 206, 86, 0.2)',
              'rgba(75, 192, 192, 0.2)',
              'rgba(153, 102, 255, 0.2)',
              'rgba(255, 159, 64, 0.2)'
            ],
          }],

          labels: [
            'Red',
            'Yellow',
            'Blue',
            'another'
          ]
        };

        let options = {
          responsive: true,
          maintainAspectRatio: false,
          legend: {
            position: 'bottom',
            boxWidth:10
          },
          tooltips: {
            enabled: false
          },
          plugins: {
            datalabels: {
              formatter: (value, ctx) => { // this is never called
                return 'hello';
                let sum = 0;
                let dataArr = ctx.chart.data.datasets[0].data;
                dataArr.map(data => {
                  sum += data;
                });
                let percentage = (value * 100 / sum).toFixed(2) + "%";
                return percentage;


              },
              color: 'black',
            }
          }
        };
        this.chart = new Chart(this.chartRef.nativeElement, { 
          type: 'pie',
          data: this.data,
          options: options
        });
      }

Кто-нибудь знает, почему это не работает для меня. Кроме того, большинство других графиков работают нормально.

Заранее спасибо за любую помощь.

...