【问题标题】:Converting Ruby objects to Javascript objects for interpolation将 Ruby 对象转换为 Javascript 对象以进行插值
【发布时间】:2013-04-21 00:53:00
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: javascript jquery ruby json


    【解决方案1】:

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

    【讨论】:

    • 那么一个json字符串会在javascript中自动解析为json?
    • @sawa 好吧,基本上。它被解析为 JavaScript,并且缺少一两个极端情况,JSON 是 JavaScript 的子集。
    猜你喜欢
    • 2022-08-18
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 2015-04-17
    • 2021-10-01
    • 1970-01-01
    相关资源
    最近更新 更多