2013-10-08 60 views
1

我有一個Rails 4應用程序,它使用flot來生成圖表。目前,我有一個圖表正確顯示在儀表板上,但是當我將另一個圖表添加到其他頁面時,它無法呈現。而且,兩個頁面上,我收到以下錯誤查看控制檯:Rails 4 Flot未捕獲類型錯誤和錯誤顯示

Uncaught TypeError: Cannot call method 'replace' of undefined 

這裏是一個的調用兩個海軍報功能(同一個文件)中的CoffeeScript:

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

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

而且,在兩個單獨的文件,我只是有空白的div元素:

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

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

再次,第一個顯示出來就好了,但第二個不顯示在所有並且都具有上面看到的未捕獲類型錯誤。

我在猜測,類型錯誤是由於#flotchart在jQuery仍然被調用的一些頁面中不存在(因爲Rails將它們全部加載到開發環境中的每個頁面)?如果是這樣,有什麼辦法可以解決這個問題嗎?然後,爲什麼不顯示第二張圖表?

在此先感謝您的幫助!

+0

發生錯誤的代碼是什麼?你有堆棧跟蹤嗎? – DNS

回答

1

問題是與我在同一頁面上加載的獨立JS庫衝突。所以,我的解決方案是消除包含在該頁面中但不需要的其他Javascript。在Rails中,我通過編寫一個只包含所需JS的幫助程序來完成此任務。