0

我觉得我错过了一些非常愚蠢的东西,但我整天都被这个问题困扰,没有找到任何可以解决的问题。我想在调用fancybox灯箱时加载带有标记的用户的地图,以下代码是我拥有的最好和最小的方法,但我得到了:

ReferenceError:找不到变量:google

= link_to image_tag('map.png'), map_vendor_path(@coupon.vendor), class: 'js-show-map'

:javascript
  $(document).ready(function(){
    $('.js-show-map').fancybox({
      onComplete: function(){
        Gmaps.loadMaps();
        Gmaps.map.addMarkers([{"lng": "7.859409", "lat": "48.023551"}]);
      }
    });
  });

单击链接时会调用以下视图

地图.html.haml

// 
 it's here just for test
= stylesheet_link_tag 'gmaps4rails.css'
= javascript_include_tag "gmaps4rails/gmaps4rails.base"
= javascript_include_tag "gmaps4rails/gmaps4rails.googlemaps"

= gmaps4rails(@vendor.to_gmaps4rails)

= yield :scripts

应用程序.js

...
//= require_tree ./templates
//= require_tree ./gmaps4rails

应用程序.css

//= require gmaps4rails

我检查了头源代码,我看到了

<script src="/assets/gmaps4rails/gmaps4rails.base.js?body=1" type="text/javascript"></script>
<script src="/assets/gmaps4rails/gmaps4rails.googlemaps.js?body=1" type="text/javascript"></script>

不在灯箱中时,地图加载正常。任何帮助将不胜感激,谢谢。

4

1 回答 1

0

我想问题如下:

  • 你点击花式框

  • 它检索 gmaps4rails html 和脚本

  • 外部脚本不会即时加载

所以你应该:

  • 在根视图中手动包含 js 依赖项

  • 禁用外部 js 依赖项包含(虽然不是强制性的)

于 2012-07-21T22:17:42.597 回答