2010-01-13 19 views
0

要的application.js更有活力,我创建javascript_controller和重命名公共/ application.js中,以应用程序/视图/的JavaScript/application.js.erb替代品该局作出的application.js动态

<%= … %>不在JavaScript中看起来很不错,有没有更好的模板引擎来完成这个任务?

+0

你需要什么动态的JS?有没有办法做到这一点。 – jonnii 2010-01-13 18:21:35

+0

主要是为了插入路径和常量(必须在javascript和css,视图或模型之间共享的那些) 它可以在没有erb的情况下完成,例如在布局中设置它们,但使用模板更加直接,需要更少的代码 – tig 2010-01-13 18:35:16

回答

3

如果您只是在寻找更好的模板引擎,为什么不尝试haml

在HAML,下面再培训局的javascript

function test(blah) { 
    alert("<%= @application_name %> says " + blah); 
} 

可以重新写为:由于HAML使用我们都成长为熟悉和喜爱的宝石串插

function test(blah) { 
    alert("#{@application_name} says " + blah); 
} 

PS:关于haml的好处之一是它可以和erb一起生活。只需安装gem,将application.erb.js的名称更改为application.haml.js,并且应该全部设置。

PPS:走这条路线也将打开使用哈姆在你的意见任何的大门。当然,有些人确实喜欢ERb,但以我的经验来看,使用haml的程度更可读更有趣。

+0

在当前的项目中,我开始使用haml,但我不确定haml不适用于某些javascript行。同样,由于它是缩进驱动的,它会用缩进的JavaScript做什么? – tig 2010-01-14 14:56:56

+0

缩进的JavaScript将会很好。缩进是一种用于生成html的功能(即Haml使用缩进来确定何时关闭html标记)。在这种情况下,您只需使用Haml的字符串插值功能,它可以独立于html生成功能使用。 – jerhinesmith 2010-01-14 15:47:21