1

flotを使用してグラフを生成する Rails 4 アプリケーションがあります。現在、ダッシュボードに正しく表示されている 1 つのグラフがありますが、別のページに 2 つ目のグラフを追加すると、レンダリングに失敗します。そして、両方のページで、コンソールを見ると次のエラーが表示されます。

Uncaught TypeError: Cannot call method 'replace' of undefined 

2 つのflot関数を呼び出している CoffeeScript を次に示します (同じファイル)。

d1 = [[1, 2], [3, 4], [5, 6]]
$.plot "#flotchart", [d1]

d2 = [[1, 2], [3, 4], [5, 6]]
$.plot "#flotchart2", [d2]

そして、2 つの別々のファイルには、空の div しかありません。

<div id="flotchart"></div>

<div id="flotchart2"></div>

繰り返しますが、最初のものは問題なく表示されますが、2 番目のものはまったく表示されず、両方とも上記のキャッチされていない型のエラーがあります。

タイプエラーは、jQuery がまだ呼び出されている一部のページに#flotchartが存在しないことが原因であると推測しています (Rails が開発環境のすべてのページにそれらすべてをロードするため)。もしそうなら、これを解決する方法はありますか?では、2 番目のグラフがまったく表示されないのはなぜですか?

助けてくれてありがとう!

4

1 に答える 1

1

問題は、同じページにロードしていた別の JS ライブラリとの競合でした。したがって、私の解決策は、そのページに含まれているが不要な他の Javascript を削除することでした。Rails では、必要な JS のみを含むヘルパーを作成することでそれを実現しました。

于 2013-10-18T20:16:17.110 に答える