2010-01-13 15 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