4

ここで見つかった宝石を使用して、ハイチャートライブラリをレールで使用しています。いずれかの軸に plotLine を追加しようとする場合を除いて、すべてが非常にうまく機能していますが、それを理解できないようです。これまでに試した 2 つのオプションとその結果を次に示します。何が起こっているのかについての洞察は大歓迎です。

オプション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}]

ただし、これをどうすればよいかわかりませんが、高チャートの API ドキュメントを考えると、複数の plotLine を提供したいので、これが機能することを期待していました。

chart.renderer.path も使用しようとしましたが、それも失敗しました。誰かが何が起こっているのか説明してください.Railsでこのgemを使ってHigh Chartsグラフに水平線を引く方法を教えてください.

ありがとう

4

1 に答える 1

1

私は実際に、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 文字列が変更され、正しく機能します。

于 2012-11-08T04:33:06.273 に答える