gpt4 book ai didi

ruby-on-rails - 在不显示 plotLines 的 rails 中使用 highcharts

转载 作者:行者123 更新时间:2023-12-01 05:27:08 25 4
gpt4 key购买 nike

我正在使用带有 rails 的 High Charts 库,使用找到的 gem here .一切都很好,除了当我尝试向任一轴添加 plotLine 时,我似乎无法弄清楚。以下是我迄今为止尝试过的两个选项及其结果。对正在发生的事情的任何见解将不胜感激。

选项1:

chart.yAxis([{title: 'Y-Axis', min: 0, plotLines: {value: 25}])

结果:我在 JavaScript 中收到错误
Uncaught TypeError: Object #<Object> has no method 'concat'

具体来说,这是引用 highcharts.js 中的以下代码
each((options.plotLines || []).concat(options.plotBands || []), function (plotLineOptions) {
//plotLinesAndBands.push(new PlotLineOrBand(plotLineOptions).render());
axis.addPlotBandOrLine(plotLineOptions);
});

当我在那里暂停执行时,options.plotLines 变量是一个对象而不是一个数组,因此没有 concat 方法。

选项 2:
chart.yAxis([{title: '', min: 0, plotLines: [{value: 25}]}])

结果:页面无法呈现,并显示来自 Rails 的以下错误消息。
You must pass a Hash to Highcharts::Axis::PlotLines. You passed [{:value=>25}]

但是,鉴于 high charts 的 API 文档,我不确定该怎么做。我希望这会起作用,因为我想提供 1 个以上的 plotLine。

我也尝试使用 chart.renderer.path 但也失败了。有人可以解释一下发生了什么,并希望提出一种方法,我可以使用这个 gem 在 Rails 中的 High Charts 图上绘制一条水平线。

谢谢

最佳答案

我实际上是通过操作由 HighCharts ruby​​ 对象生成的底层 javascript 来解决这个问题的。这是执行此操作的代码

chart.yAxis([{title: '', min: 0, plot_lines_replace: plot_lines}])

# Because of a bug in this High Charts rails library, I'm going to have
# to add the plot_lines myself through the javascript

return chart.to_s.gsub("plot_lines_replace", "plotLines").html_safe

这将使用 javascript 中的 plotLines 修改 plot_lines_replace 字符串,它将正常工作。

关于ruby-on-rails - 在不显示 plotLines 的 rails 中使用 highcharts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13281657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com