ROR:如何在不重新加载浏览器的情况下从控制器获取参数
ROR:How can I get the params from controller without reloading the browser?
我现在正在使用一些gmap API,我通过gem"gon"传递lat和log。由于我希望标记是最新的,我需要最新的lat和log。如何在不重新加载整个页面的情况下将params从controller传递到view.html?
控制器.rb
@targetrecords.each do |targetrecords|
pnts[i][0]=targetrecords.latitude
pnts[i][1]=targetrecords.longitude
pnts[i][2]=targetrecords.address
pnts[i][3]=targetrecords.created_at
end
gon.pnts=pnts
index.html.erb
<script type="text/javascript">
var centlat = (gon.pnts[0][0]+gon.pnts[1][0]+gon.pnts[2]
[0]+gon.pnts[3][0])/4;
var centlng = (gon.pnts[0][1]+gon.pnts[1][1]+gon.pnts[2]
[1]+gon.pnts[3][1])/4
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 14,
center: new google.maps.LatLng(centlat,centlng),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
</script>
视图中还有更多,但只是一些类似的东西,我希望它通过点击或其他方式更新。
使用gem-gon,如果您正确遵循设置,您可以在控制器中执行此操作:
def your_action
gon.your_variable = your_ruby_variable
end
现在您可以在javascript中访问它。要尝试它,你可以做:
console.log(gon.your_variable)
您应该能够在浏览器的控制台中看到它。
您也可以使用ajax请求,但既然您询问了gon,这应该可以工作。
编辑:要在加载第一个页面后获得更新,您可以使用gon watchhttps://github.com/gazay/gon/wiki/Usage-gon-watch
相关文章:
- ROR:如何在不重新加载浏览器的情况下从控制器获取参数
- 如何在不检查HTTP标头的情况下检测移动浏览器
- 对于如何在没有modernizr的情况下用边界半径的功能检测检查来替换我的旧浏览器检查
- 在禁用浏览器flash插件的情况下运行Karma测试
- 如何在不使用插件的情况下用程序记录浏览器操作
- 如何使用 dojo 在不冻结浏览器的情况下下载文件
- Apache Cordova:在不启动浏览器应用程序的情况下运行Cordova运行浏览器
- 在不使用 CSS 的情况下,将元素与浏览器屏幕顶部保持设定的距离
- 如何在不检查设备的情况下禁用移动浏览器上的滚动
- 如何在没有JQuery的情况下,通过对服务器的基本ajax调用,根据浏览器上的用户活动保持服务器会话活动
- 在浏览器上不打开url的情况下自动请求
- 如何在没有任何浏览器插件的情况下调试AngularJS绑定{{expression}}
- 如何在不使浏览器滞后的情况下暂停Javascript的执行
- 如何在没有safari的情况下为浏览器隐藏视频元素
- 如何在不冻结浏览器的情况下执行大量javascript代码
- 在没有调度器的情况下在WPF Web浏览器中调用Javascript
- 浏览器扩展:如何在没有冲突的情况下将javascript代码注入页面
- AJAX-如何在不冻结浏览器的情况下逐个发出异步请求
- 如何在无需确认的情况下在web浏览器中打印页面
- href=“#” 和浏览器情况下的后退按钮