2010-04-05 71 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的形式。