Я локально использую следующие зависимости highcharts:
- "angular-highcharts": "latest"
- "highcharts": "latest"
- "@types / highcharts ":" latest "
Вот живое демо моего исходного кода,
Я широко использую angular-highcharts в моем угловом 5приложение.Во многих случаях необходимо расширять диаграмму (когда на диаграмме видно много точек данных), чтобы учесть такие случаи, хотя я и создавал общий компонент.
Этот компонент с именем chart-widget отображаетдиаграмма в загрузочной карточке с возможностью развернуть диаграмму, на развернутой же диаграмма открывается в модальном режиме.Этот общий компонент позаботится обо всей логике, необходимой для открытия любого графика в модальном режиме (который можно перетаскивать и изменять размер).Таким образом, нам не нужно каждый раз дублировать одну и ту же функциональность.
Я создал общий компонент, и все работало нормально, но недавно мы обновили наши репо-зависимости, так как в версии highcharts были некоторые другие проблемыМы использовали, эти проблемы были исправлены в последней версии highCharts, поэтому мы решили, что лучше всего перейти на последнюю версию.С тех пор эта функциональность перестала работать.
Следуя логике, используемой для клонирования chartConfig во время модального открытия.Затем клонированный конфиг был передан на расширенную диаграмму, которая находится внутри модальной зоны.Но теперь расширенная диаграмма теперь всегда пуста.
this.expandChartConfig = new Chart(Object.assign({}, this.chartConfig.options));
, где chartConfig - это обычная конфигурация, используемая для визуализации диаграммы,
и expandChartConfig - это объект диаграммы, переданный модалу.
После обновления я понял, что свойство chartConfig.options теперь стало приватным, поэтому я также попытался:
this.expandChartConfig = new Chart(Object.assign({}, this.chartConfig.ref.options));
но это тоже не сработало.
Изначально я использовал одну и ту же конфигурацию для обеих диаграмм, но это приводило к проблемам, связанным с закрытием модального режима. HighChart также был уничтожен.Поэтому я решил, что создание отдельного конфига во время открытия модального графика для диаграммы внутри модального режима было лучшим вариантом.
Так что теперь, проще говоря, мой вопрос как я могу клонировать существующий график динамически.
Эта функциональность требуется в десятках мест, поэтому я не могу поддерживать отдельные объекты диаграммы в каждом отдельном месте.
Также есть многоопераций, выполняемых на графиках, таких как setData, setCategories, addSeries, removeSeries, update и т. д., поэтому не рекомендуется сохранять копии и обновлять их при каждой операции.Также эти операции будут выполняться родительским компонентом, поэтому ChartWidgetComponent не может знать о таких изменениях, когда они выполняются.
Итак, вкратце, как я могу динамически клонировать существующую верхнюю диаграмму итакже какой метод лучше?
Ps Я пробовал несколько методов, упомянутых в stackOverflow, но ни один из них, похоже, не работает.