Невозможно получить оператор if if в метке всплывающей подсказки для работы в chartjs - PullRequest
0 голосов
/ 21 апреля 2020

Я использую диаграмму js. На графике js я использую пользовательские подсказки с кодом ниже. Проблема, с которой я сталкиваюсь, заключается в том, что оператор if возвращает все метки, кроме последней. Последний + общая сумма меток возвращается в операторе else.

Проблема в том, что таким образом, когда я щелкаю по последней метке на визуализированном графике (чтобы удалить данные), я также удаляю итоговую сумму из подсказки. Я попытался изменить .length -1 в операторе if на .length. Таким образом, последняя метка включается в оператор if, но общая метка больше не работает. Возможно, потому что оператор else больше не выполняется. Я действительно застрял и надеюсь, что кто-то может помочь.

tooltips: {
        mode: 'index',         
        titleFontSize: 14,
        callbacks: {
            label: function(tooltipItem, data) {
                var corporation = data.datasets[tooltipItem.datasetIndex].label;
                var valor = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
                var total = 0;
                for (var i = 0; i < data.datasets.length; i++)
                    total += data.datasets[i].data[tooltipItem.index];
                if (tooltipItem.datasetIndex != data.datasets.length - 1) {
                    return corporation  + " €" + valor.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
                } else {                        
                    return [corporation  + " €" + valor.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."), "Inschrijfprijs : €" + total.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".")];
                }

            }                

        }
    }

1 Ответ

0 голосов
/ 21 апреля 2020

В случае else вы возвращаете array, но вы должны вернуть string. Снимите угловые скобки и проверьте, работает ли он.

} else {                        
  return corporation  + " €" + valor.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."), "Inschrijfprijs : €" + total.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
}

Обратные вызовы подсказок из диаграммы. js Состояния документации

label (.. .) Возвращает текст для отображения для отдельного элемента во всплывающей подсказке.

...