如何将变量从控制器传递到javascript后,变量被计算完成
How to pass variable from controller to javascript after the variable is done being computed?
我有一个链接到一个方法的按钮,我们称它为"method",在UserController中,它看起来像这样:
def method
***do stuff***
@my_variable = value dependent on the do stuff part
end
是否有任何方法访问变量在我的javascript当它被计算完成(基本上,当它被定义)?
在你的动词文件
<%= javascript_tag do %>
window.MyVariable = '<%= @my_variable %>';
<% end %>
railscasthttp://railscasts.com/episodes/324-passing-data-to-javascript?view=asciicast
如果你不想使用window。解决方案,这里有一个不同的想法可以尝试。
这就是我在show.html.erb中所做的,在使用google map API的js函数中传递一个反向地理编码地址来映射点。
<!-- Must be set to pass instance vars to javascript -->
<%= javascript_tag "var js_marker_lat = #{@location.latitude.to_json};" %>
<%= javascript_tag "var js_marker_lng = #{@location.longitude.to_json};" %>
在javascript函数中,您像往常一样使用变量。
var latlng = new google.maps.LatLng(js_marker_lat, js_marker_lng);
在控制器中,javascript_tag helper不可用,因此您可能仅限于使用html。Erb文件用于js vars之类的东西。请告诉我进展如何。
相关文章:
- 如何计算每个元素's的高度,并将这些值用作函数中的变量
- 设置为负数的变量计算结果为true
- 对于使用传递的数据计算的局部范围变量,角度绑定在自定义指令中不起作用
- 如何在此脚本代码中正确设置此计算和变量
- Angularjs:访问范围变量数组并计算平均值
- 计算出具有多个变量的旅程成本的总价
- 如何在javascript中计算两个变量的百分比
- 如何在jQuery中单击时重新计算变量
- 计算三角形面积-作为变量工作,但不作为函数包装
- 如何降低炮弹速度变量的计算成本
- 使用HTML中数据字段提取的变量进行计算
- 变量计算不起作用(jquery/javascript)
- 将变量与 HTML 字符串一起使用,并计算
的数量 - Javascript形式,计算三个相关变量
- JavaScript 减去两个变量之间的计算
- 具有计算名称的引用变量
- 使用变量进行 Jquery 计算
- jQuery -滚动到一个由变量计算的位置
- 使用sessionScope变量计算数据源-变量在部分刷新和完全刷新时被设置为null
- 从两个变量计算任务的紧急程度