В моем приложении VueJs я представляю круговую диаграмму и таблицу, показывающую данные. В легенде onClick я пытаюсь отфильтровать строки таблицы. Вот мой код
<pie-chart
:donut="false"
:data="charInfo"
:responsive="true"
:library="{legend:{display: true,onClick:itemSelected}}"
legend="top"
:colors="['#5C9AFF', '#FF3263']"/>
Здесь, нажав на конкретную легенду, 'itemSelected' вызывается с двумя аргументами, 1-й - это mouseEvent, а 2-й - legendItem. Я могу получить текст легенды и фильтровать строки таблицы. Но проблема в том, что он переопределяет поведение по умолчанию, зачеркивание легенды и скрытие/отображение раздела круговой диаграммы отключено. При поиске наткнулся ChartJs Legend onClick Issue. В нем говорится хранить исходную легенду о событии onClick и вызывать ее из моего кода. Я могу сохранить исходный onClick, используя что-то вроде «const original = Chart.defaults.pie.legend.onClick», но проблема в том, что у меня нет объекта диаграммы для вызова «original.call(,event,legendItem). И тут я как-то застрял.
У меня сейчас нет этого кода, поэтому я не могу проверить и дать вам пример кода. Но на самом деле я перестал показывать легенду ChartJS и добавил свой собственный компонент пользовательского интерфейса. А потом обновлял набор данных. Я знаю, это было не очень красивое решение, но мне нужно было урегулировать дату доставки. Но ваше решение намного элегантнее моего.