javascript - 将 Ruby 对象转换为 Javascript 对象以进行插值

标签 javascript jquery ruby json

将一些常见的 Ruby 对象(如字符串、哈希、数组)转换为相应的 Javascript 对象的好方法是什么?例如,jQuery css() 接受哈希作为参数。假设我有一个像这样的 Ruby 散列:

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

我想将这个 ruby​​ 对象嵌入到一个字符串中,以便它成为一个有效的 javascript (jQuery) 命令。我现在最好的尝试是像这样通过 json 转换它:

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

但是效果不是很好。我想要一种更直接、更有效的方法来做到这一点。有什么好的方法吗?

最佳答案

无需转成字符串再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);

关于javascript - 将 Ruby 对象转换为 Javascript 对象以进行插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16243367/

相关文章:

javascript - 如何在 Angular 中使用通过状态传递的数据

javascript - Mapbox-GL-绘图 : Cannot set property 'modes' of undefined

javascript - 选择图像后的内容

ruby-on-rails - 如何修改:confirm or add a new method to link_to UrlHelper?

javascript - 没有全局变量的变量范围和共享信息

javascript - 创建过去 365 天的日历网格

ruby - 我可以使用哪个 HTTP Web 服务器来调试使用 Rubymine 3.0.1 的 ruby​​ 代码?

ruby-on-rails - 在ElasticSearch和Tire中使用缺少过滤器的构面

javascript - 我可以将从 Canvas 上下文创建的渐变应用到其他 Canvas 上下文吗?

javascript - 如何隐藏专注于 Android 的文本区域?