在javascript函数中设置ruby实例变量
Set ruby instance variable inside javascript function
我试图将ruby实例变量的值设置为纬度和经度值。如何在javascript函数中设置实例变量的值?
像这样?
<script>
if (geoPosition.init()){ geoPosition.getCurrentPosition(geoSuccess, geoError); }
function geoSuccess(p) {
<% @lat_lng = p.coords.latidude + "," + p.coords.longitude %>
}
function geoError(){ alert("No Location: Won't be able to use Maps functionality"); }
</script>
我需要json
您不了解代码在何时何地运行。
Ruby(在Rails上,或其他)在服务器上运行。它创建HTML+JS+任何通过互联网发送到客户端的内容。
客户端(web浏览器)接收此代码,并执行JavaScript代码。
因此,你不能让你的Ruby变量被设置为运行JavaScript代码的结果,而不再次联系web服务器。
您需要使用AJAX(或其他一些较低的技术)在调用该函数时将请求发送回web服务器。
例如(使用jQuery的jQuery.post
):
function geoSuccess(p){
$.post('/newcoords',{lat:p.coords.latitude, long:p.coords.longitude});
}
和在某个控制器的某处:
def newcoords
@lat_lng = [params[:lat],params[:long]].join(",")
end
相关文章:
- ES6构造函数返回基类的实例
- KnockoutJS-组件-多个实例
- 为什么无法在TypeScript中导出类实例
- 如何在GoogleWeb工具包(GWT)中从JSNI调用接口(实例化)
- fluxxor向一个flux实例添加一组以上的操作
- 使用jQuery获取Dropzone实例/对象
- 如何防止jQueryonclick事件中的Ruby方法在页面刷新时执行
- "实例范围”;TypeScript类的getter/setter
- 如何在速度模板中获取LiferayPortlet实例id
- 同一项怎么可能在一个实例中未定义,却在另一个实例上定义
- 实例创建(JS)
- 显示模块模式在Knockout中设置模型的新实例
- 如何获取单选按钮的多个实例的选定单选按钮值
- 当同一浏览器的两个实例浏览时,Javascript页面如何具有唯一的ID
- 在哪里可以找到RXUI Javascript'时间飞逝'实例
- javascript中的Ruby插值在两个实例中的一个实例中不起作用
- 如何从Ruby/Rails调用按钮的特定实例.each循环,当它们都具有相同的类时
- 如何使用AJAX监控ruby控制器传递到视图html的实例变量
- 修改Ruby中实例变量的值
- 在javascript函数中设置ruby实例变量