У меня есть приложение rails 6 / webpacker / stimulusjs, которое загружает некоторые диаграммы в виде диаграммы:
<%= line_chart my_query.group_by_month(:paid_at, format: "%b %Y").sum(:amount) %>
, которая отлично работает при первой загрузке.
Проблемы возникают, когда я выполняю какое-либо действие на странице, а затем заменяю содержимое страницы (которое также содержит указанный график) на
document.querySelector(`#${refresh}`).innerHTML = html
(я получаю html из конечной точки бэкэнда).и замените его в контроллере StimulusJS)
Результат - только «Загрузка ...» вместо диаграммы.
Содержимое HTML верно
<div id="chart-1" style="height: 300px; width: 100%; text-align: center; color: #999; line-height: 300px; font-size: 14px; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Arial, Helvetica, sans-serif;">Loading...</div><script type="text/javascript">
new Chartkick["LineChart"]("chart-1", [["May 2019","56.0"],["Jun 2019","10.0"],["Jul 2019","20.0"],["Aug 2019","1233.0"],["Sep 2019","2574.0"]], {});
</script>
Тогда мне кажется, что Javascript не загружается, тогда?
Я пытался добавить
Chartkick.eachChart( function(chart) {
console.log('redrawing')
chart.redraw()
})
, который должен перезагрузить график, но ничего не происходит.Я пробовал это в моем контроллере Stimulus после замены HTML на connect()
в консоли JS, но ничего не помогло.«Перерисовка» печатается правильно.
Не уверен, как поступить.Любые идеи приветствуются.