Ruby on rails 在show.html.erb上动态更新javascript_include_标记
下面是一个场景: 我在数据库中有4个条目,它们是4条地图路线 每个地图路线都有自己的XML文件,其中包含每个路线的坐标,我编写了一个ajax函数,从XML中提取数据并将其写入google地图 这是代码的摘录Ruby on rails 在show.html.erb上动态更新javascript_include_标记,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,下面是一个场景: 我在数据库中有4个条目,它们是4条地图路线 每个地图路线都有自己的XML文件,其中包含每个路线的坐标,我编写了一个ajax函数,从XML中提取数据并将其写入google地图 这是代码的摘录 $.ajax({ type: 'GET', url: '/route4.gpx', dataType: 'xml', success: function(track) { var grids
$.ajax({
type: 'GET',
url: '/route4.gpx',
dataType: 'xml',
success: function(track) {
var grids = [];
var bounds = new google.maps.LatLngBounds ();
$(track).find('trkpt').each(function() {
var lat = $(this).attr('lat');
var lon = $(this).attr('lon');
var point = new google.maps.LatLng(lat, lon);
grids.push(point);
bounds.extend(point);
我将这段代码保存到4个javascript文件中,每个文件的URL行不同(route1.gpx、route2.gpx等)
我要做的是在show.html.erb文件中更改javascript_include_标记以更新到相关的javascript文件
因此show.html.erb标记如下所示
<%= javascript_include_tag "http://maps.google.com/maps/api/js?sensor=false" ,"http://code.jquery.com/jquery-1.9.1.min.js", "/js/script1.js" =%>
我想要的是当我访问另一个页面时,最后一个要更改的引用
当链接到show/1时,javascript文件将是“/js/script1.js”
当链接到show/2时,javascript文件将是“/js/script2.js”
当链接到show/3时,javascript文件将是“/js/script3.js”
当链接到show/4时,javascript文件将是“/js/script4.js”
那么,是否有必要写入javascript_include_标记来实现这一点
感谢所有的帮助/建议/评论为什么不插入
<%= javascript_include_tag "http://maps.google.com/maps/api/js?sensor=false" ,"http://code.jquery.com/jquery-1.9.1.min.js", "/js/script#{controller_variable_for_example_id}.js" =%>
您可以插入传递给javascript\u include\u标记的字符串,将其作为实例变量传递,但我认为您走错了方向。我将有一个javascript函数,它将发出ajax请求的url作为参数 然后用该参数调用该函数。你有几个选择 您可以有一个脚本标记,在其中动态生成函数调用,即按照
$(function(){
my_function(<%= @url.to_json %>)
})
您可以让函数调用成为静态javascript的一部分,但让它从相关DOM元素的数据属性中提取其参数
$(function(){
my_function($('some_element').data('url'))
})
我通常会选择后者
$(function(){
my_function(window.map_url)
})
$(function(){
my_function($('some_element').data('url'))
})