Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 带有OpenLayers的Gmaps4Rails在单击标记时出现JS错误:this.serviceObject未定义_Ruby On Rails_Ruby On Rails 3_Openlayers_Gmaps4rails - Fatal编程技术网

Ruby on rails 带有OpenLayers的Gmaps4Rails在单击标记时出现JS错误:this.serviceObject未定义

Ruby on rails 带有OpenLayers的Gmaps4Rails在单击标记时出现JS错误:this.serviceObject未定义,ruby-on-rails,ruby-on-rails-3,openlayers,gmaps4rails,Ruby On Rails,Ruby On Rails 3,Openlayers,Gmaps4rails,我在Gmaps4Rails Gem版本1.5.2中使用OpenLayers时遇到问题。单击标记时,我希望显示典型的详图索引信息框。不幸的是,我遇到以下JavaScript错误: 此.serviceObject未定义 Firebug调用文件gmaps4rails.openlayers.js responsable的第195行: return this.serviceObject.addPopup(popup); 如果我改用谷歌地图作为API提供者,一切都很好。显示和隐藏信息框效果很好。这就是为什

我在Gmaps4Rails Gem版本1.5.2中使用OpenLayers时遇到问题。单击标记时,我希望显示典型的详图索引信息框。不幸的是,我遇到以下JavaScript错误:

此.serviceObject未定义

Firebug调用文件gmaps4rails.openlayers.js responsable的第195行:

return this.serviceObject.addPopup(popup);
如果我改用谷歌地图作为API提供者,一切都很好。显示和隐藏信息框效果很好。这就是为什么我假设错误一定在gmaps4rails.openlayers.js中的某个地方

我在Mac上试用了最新的FF和Chrome浏览器

为了在简化的示例中再现错误,我在Rails 3.2应用程序的公用文件夹中创建了一个简单的HTML页面,并直接链接了所需的JS和CSS文件。为了创建HTML页面,我复制了我的Breake Rails应用程序的HTML代码,并对其进行了缩减

Gmaps.map=新的Gmaps4RailsOpenlayers; Gmaps.load_map=函数{ Gmaps.map.map_options.provider=openlayers; Gmaps.map.initialize; Gmaps.map.markers=[ {说明:这应该在弹出窗口中

, 身份证号码:117979030, 拉脱维亚:39.5715, 液化天然气:2.64694} ]; Gmaps.map.create_标记; Gmaps.map.adjustMapToBounds; Gmaps.map.callback; }; Gmaps.oldOnload=window.onload; window.onload=函数{ Gmaps.triggerOldOnload; Gmaps.loadMaps; }; 不幸的是,我找不到一个成功的Gmap4Rails-Openlayers web集成的工作示例。我是否缺少一个强制参数

提前谢谢。

这是一个bug

替换:

return this.serviceObject.addPopup(popup);
与:


我将很快推出一个修复程序,谢谢,而且+1

很好。修复确实解决了JavaScript错误。非常感谢你。不幸的是,我遇到了另一个问题,我认为这是一个错误:在打开和关闭信息框后,我无法再次打开它。我试过Chrome和FF。请让我知道,如果我应该打开这个问题或你认为我的第一个问题的这一部分?嗯,看看我的主分支,同一个错误,使删除标记失败。这就是导致这一问题的原因,我想我明白了:是的。大师使事情变得更好。但一开始我并没有看到它,因为我被另一只小虫子困住了。为了关闭信息框,我使用了X图标,然后再次单击标记。这不会再次打开信息框,直到您在地图上的标记外单击一次,然后再次单击该标记。据我所知,这不是gmaps4rails,而是OpenLayers的bug。所以,非常感谢你。
return this.map.addPopup(popup);