Диаграммы Chartkick не загружаются при обновлении содержимого html через innerHTML - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть приложение 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, но ничего не помогло.«Перерисовка» печатается правильно.

Не уверен, как поступить.Любые идеи приветствуются.

...