2010-04-05 104 views
1

我在我的public/javascript文件夾中有一個.js文件,我想在該文件中包含dynamicaly生成的值。Rails:在運行時生成.js文件

是否有可能有dynamicaly生成的.js文件,像public/javascript/my_javascript.js.erb

感謝

回答

4

的東西怎麼樣在這個railscast詳述一個javascript控制器:

http://railscasts.com/episodes/88-dynamic-select-menus

現在,如果你只想在運行時實例化這個動態值,那麼你可以緩存它或存儲在一個實例變量中,這取決於數據來自哪裏。

只要頁面加載完成,您可以通過在動態文件中將js變量存儲在變量js中來保留現有javascript。

+0

ryanb的解決方案對我來說是完美的,謝謝 – denisjacquemin 2010-04-06 08:54:06

7

不,不在/公開。但是如果你喜歡,你可以從標準Rails動作中生成一個js文件。我不會推薦這個,因爲混合後端JavaScript代碼是創建一個不可維護和混亂的應用程序的最快方法之一。

更好的解決方案可能是在佈局中呈現腳本標記(在js includes之上)以動態設置js變量。然後在js中使用任何你需要它的地方使用MY_VAR。

<% javascript_tag do -%> 
var MY_VAR = '<%= value_of_my_var || "defaultVal" %>'; 
<% end -%> 
+0

好的解決方案謝謝,對我來說,ryanb的解決方案更適合我的需求 – denisjacquemin 2010-04-06 08:54:58

+0

是的:這是正確的路要走。 – 2010-04-06 15:38:07

+0

雖然這不會創建全局變量嗎?從javascript的角度來看,這似乎是一個不好的做法。 – quoo 2013-02-21 14:34:28

2

是的,你不這樣做,你會更好地保持代碼靜態和使用軌道生成數據,例如說一個JSON的形式。