我觉得我错过了一些非常愚蠢的东西,但我整天都被困在这里并没有找到任何可以解决的问题。我想在调用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"}]);
}
});
});
点击链接
时会调用以下视图//
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
...
//= require_tree ./templates
//= require_tree ./gmaps4rails
//= 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>
不在灯箱中时,地图加载正常。任何帮助将不胜感激,谢谢。
答案 0 :(得分:0)
我猜问题如下:
点击fancybox
它检索gmaps4rails html和脚本
外部脚本未即时加载
所以你应该:
在根视图中手动包含js依赖项
禁用外部js依赖项包含(但不是必需的)