Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.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
Javascript Gmaps4Rails-自定义信息窗口不工作_Javascript_Ruby On Rails_Google Maps_Gmaps4rails - Fatal编程技术网

Javascript Gmaps4Rails-自定义信息窗口不工作

Javascript Gmaps4Rails-自定义信息窗口不工作,javascript,ruby-on-rails,google-maps,gmaps4rails,Javascript,Ruby On Rails,Google Maps,Gmaps4rails,我在使用GoogleMaps4Rails gem在rails上实现自定义信息框时遇到问题。 我已经在页面顶部添加了infobox插件,并在文档中尝试了代码片段,但仍然没有自定义infobox或infobox窗口上的一类“黄色” 如何将自定义信息框的选项传递给以下程序生成的标记 :javascript handler = Gmaps.build('Google'); handler.buildMap({ provider: { }, internal: {id: 'map'}}, fun

我在使用GoogleMaps4Rails gem在rails上实现自定义信息框时遇到问题。 我已经在页面顶部添加了infobox插件,并在文档中尝试了代码片段,但仍然没有自定义infobox或infobox窗口上的一类“黄色”

如何将自定义信息框的选项传递给以下程序生成的标记

:javascript
 handler = Gmaps.build('Google');
 handler.buildMap({ provider: {
   }, internal: {id: 'map'}}, function(){
   markers = handler.addMarkers(#{raw @hash.to_json},{builders: {Marker: InfoBoxBuilder}});
   handler.bounds.extendWith(markers);
   handler.fitMapToBounds();
   handler.getMap().setZoom(9);
  });    
我还向infowindow.js.coffee添加了以下代码

class InfoBoxBuilder extends Gmaps.Google.Builders.Marker # inherit from base builder

# override method
create_infowindow: ->
  return null unless _.isString @args.infowindow
  boxText = document.createElement("div")
  boxText.setAttribute("class", 'yellow') #to customize
  boxText.innerHTML = @args.infowindow
  @infowindow = new InfoBox(@infobox(boxText))

infobox: (boxText)->
  content: boxText
  pixelOffset: new google.maps.Size(-140, 0)
  boxStyle:
  width: "280px"

handler = Gmaps.build 'Google', { builders: { Marker: InfoBoxBuilder} }

任何帮助都将不胜感激。谢谢。

您误读了文件,请更换:

:javascript
 handler = Gmaps.build('Google');
 handler.buildMap({ provider: {
   }, internal: {id: 'map'}}, function(){
   markers = handler.addMarkers(#{raw @hash.to_json},{builders: {Marker: InfoBoxBuilder}});
   handler.bounds.extendWith(markers);
   handler.fitMapToBounds();
   handler.getMap().setZoom(9);
  }); 
与:

class-InfoBoxBuilder
应该是
class@InfoBoxBuilder
才能在
窗口
对象上访问


基本上,在gem的文档中,地图创建是在与
InfoBoxBuilder
类相同的文件中定义的。您没有这样做:您在窗口中创建处理程序。

它正在工作!非常感谢你,你太棒了。
:javascript
  var handler = Gmaps.build('Google', { builders: { Marker: InfoBoxBuilder} });
  handler.buildMap({ internal: {id: 'map'}}, function(){
    var markers = handler.addMarkers(#{raw @hash.to_json});
    handler.bounds.extendWith(markers);
    handler.fitMapToBounds();
    handler.getMap().setZoom(9);
  });