2013-04-26 72 views
3

將一些常見Ruby對象(如字符串,哈希值,數組)轉換爲相應的Javascript對象的好方法是什麼?例如,jQuery css()接受一個散列作爲參數。假設我有一個Ruby的哈希值是這樣的:將Ruby對象轉換爲用於插值的Javascript對象

h = {"background-color" => "yellow", "color" => "green"} 

我想嵌入此紅寶石對象轉換成字符串,使之成爲一個有效的JavaScript(jQuery的)命令。我現在最好的嘗試是通過像這樣的json轉換它:

"$('#foo').css(JSON.parse('#{h.to_json}'));" 

但它不能正常工作。我想要一個更直接和更有效的方式來做到這一點。有沒有好的方法?

回答

7

無需轉換爲字符串,然後JSON.parse:

"$('#foo').css(#{h.to_json});" 

或者,如果你打破它了...

var h = #{h.to_json}; 
"$('#foo').css(h);" 

這是呈現給客戶端:

var h = {"background-color":"yellow","color":"green"}; 
$('#foo').css(h); 
+0

因此,一個json字符串被自動解析爲JavaScript內的json? – sawa 2013-04-26 18:58:53

+0

是的。請參閱添加內容,其中顯示將呈現的內容; – Larsenal 2013-04-26 19:01:20

+1

@sawa好了,基本上。它被解析爲JavaScript,並且缺少一兩個角落,JSON是JavaScript的一個子集。 – 2013-04-26 19:42:50