2014-03-03 20 views
0

我正在使用morris.js來顯示圖形。相關的js文件是在vendor/assets/javascripts如何將js和咖啡腳本文件添加到特定頁面的末尾

我包括他們的application.js

//= require raphael 
//= require morris 

圖表正確呈現當我包含莫里斯圖形元素在頁面上。

問題是,所有其他網頁與JavaScript不再工作(沒有莫里斯圖元素)。

我得到這個錯誤:

Error: Graph container element not found 
throw new Error("Graph container element not found"); 

因此,如何將我包括在某一頁末尾的js文件?

我曾嘗試以包括特定頁面的末尾以下內容:

<%= javascript_include_tag "raphael.js" %> 
<%= javascript_include_tag "morris.js" %> 

但是因爲圖需要位於employee.js.coffee一些咖啡腳本:

jQuery -> 
Morris.Line 
element: 'averages_chart' 
data: $('#averages_chart').data('averages') 
xkey: 'month' 
ykeys: ['average'] 
labels: ['Average'] 

我得到以下錯誤:

ReferenceError: Morris is not defined 
return Morris.Line({ 

我認爲這是因爲它加載咖啡sc在javascript_include_tag之前的頁面開頭撕開?

請幫

回答

1

我的猜測是,employee.js包括在application.js中,從而得到加載,正如你提到的,morris.js之前。最簡單的解決方案是從application.js中刪除employee.js,並將其僅包含在使用它的頁面中。或者,將代碼包裝在employee.js中,以便只有在知道morris.js已加載時纔會執行對Morris的使用。

相關問題