【问题标题】:Inserting javascript values into erb code将javascript值插入erb代码
【发布时间】:2011-02-20 14:41:07
【问题描述】:

我有一个带有以下代码的 js.erb 模板:

var latlng = new google.maps.LatLng(<%= session[:lat] %>, <%= session[:lng] %>);

我现在正试图做相反的事情(将 javascript 插入 ruby​​):

<% session[:lat] = javascript_tag("document.write(location.lat());") %>

【问题讨论】:

    标签: javascript ruby-on-rails maps erb


    【解决方案1】:

    我认为您错过了 Javascript 的重点。

    Ruby 代码(您的示例中的&lt;% .. %&gt; 部分)在服务器上运行。

    Javascript 代码(var latlng = new google.maps.LatLng(10, 20);document.write(location.lat());)在浏览器中执行。
    当服务器已经处理请求并生成结果页面时,它也会在 ruby​​ 代码之后执行。

    如果您想知道服务器上location.lat() 的值,您必须将其从浏览器发送到AJAX 请求中的服务器。任何流行的 Javascript 库都会对此有所帮助。

    【讨论】:

    • @DanS 关于您的编辑...浏览器知道一些值(location.lat())并且您希望服务器知道它。这意味着,您必须向服务器发送某种请求。 Ajax 与否。
    【解决方案2】:

    也许你可以试试&lt;%= raw [ruby/rails code] %&gt;
    此链接可能会有所帮助:http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/a160d9c2e55cfe36

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-21
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      相关资源
      最近更新 更多