变量完成后如何将变量从控制器传递给javascript?

时间:2015-09-04 22:08:57

标签: javascript ruby-on-rails ruby ruby-on-rails-4

我有一个链接到方法的按钮,让我们在UserController中调用它"方法",看起来像这样:

def method
  ***do stuff***
  @my_variable = value dependent on the do stuff part
end

在计算完成后,有没有办法在我的javascript中访问该变量(基本上,当它被定义时)?

2 个答案:

答案 0 :(得分:1)

你的erb文件中的

<%= javascript_tag do %>
  window.MyVariable = '<%= @my_variable %>';
<% end %>

railscast http://railscasts.com/episodes/324-passing-data-to-javascript?view=asciicast

答案 1 :(得分:0)

如果您不想使用窗口。解决方案,这是一个不同的想法尝试。

这是我在show.html.erb中执行的操作,用于传递反向地理编码地址以映射使用谷歌地图API的js函数中的点。

var latlng = new google.maps.LatLng(js_marker_lat, js_marker_lng);

在javascript函数中,您可以像往常一样使用变量。

"warning: control reaches end of non-void function"

在控制器中,javascript_tag帮助程序不可用,因此您可能仅限于使用html.erb文件来获取js vars。 请告诉我它是怎么回事。