gpt4 book ai didi

ruby-on-rails - gmaps4rails 未在指定的 div id 中呈现

转载 作者:行者123 更新时间:2023-12-04 06:01:08 24 4
gpt4 key购买 nike

我在 Active Admin 中使用 Gmaps4Rails(Google Maps for Rails)。到目前为止一切都很好,除了我不得不在同一个显示页面上添加多个 map 。
gem 'gmaps4rails', '~> 2.1', '>= 2.1.2'
我将脚本的导入提取到了一个我在显示 View 中只调用一次的 html,所以我没有收到错误:
/views/admin/_map_include_scripts.html.erb

<script src="//maps.google.com/maps/api/js?key=<%= ENV['GOOGLE_KEY'] %>"></script>
<script src="//cdn.rawgit.com/mahnunchik/markerclustererplus/master/dist/markerclusterer.min.js"></script>
<script src='//cdn.rawgit.com/printercu/google-maps-utility-library-v3-read-only/master/infobox/src/infobox_packed.js' type='text/javascript'></script>

然后在节目中我做:
div id: 'map' do
render '/admin/map_include_scripts'
markers = DeliveryMarkersService.new(delivery).orders_markers
render '/admin/map_scripts', markers: markers, map_div_id: 'map'
end

views/admin/_map_scripts.html.erb我有:
<script>
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: { id: '<%= map_div_id %>' }}, function(){
markers = handler.addMarkers(<%=raw markers.to_json %>);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
handler.getMap().setZoom(15);
});
</script>

到目前为止,它工作得很好!我看到了 map ,标记,一切。

现在我想添加第二个 div 和第二个 map 所以首先我尝试将第一个 div 更改为以下内容,以验证我可以告诉 Gmaps 在哪个 div 中显示它 :
div id: 'map2' do
render '/admin/map_include_scripts'
markers = DeliveryMarkersService.new(delivery).orders_markers
render '/admin/map_scripts', markers: markers, map_div_id: 'map2'
end

但是 map 没有渲染!控制台上没有错误。
如果我确实发送了一个无效的 id(不存在的 div id),我会收到一个错误。

有谁知道发生了什么?

最佳答案

您的问题可能与做render '/admin/map_include_scripts'有关在同一页面中出现两次,这会触发 map 和叠加 API 的另一次加载。当您在第一个加载您的 render '/admin/map_scripts', markers: markers, map_div_id: 'map2' 后执行此操作时可能在完全加载库之前执行 map 渲染 JS。尝试移动render '/admin/map_include_scripts'到每个 div 映射循环之外的公共(public)片段。
这样,库仅在您不需要等待 API 的第二次加载时才加载。

render '/admin/map_include_scripts'
div id: 'map' do
markers1 = DeliveryMarkersService.new(delivery1).orders_markers
render '/admin/map_scripts', markers: markers1, map_div_id: 'map'
end

div id: 'map2' do
markers2 = DeliveryMarkersService.new(delivery2).orders_markers
render '/admin/map_scripts', markers: markers2, map_div_id: 'map2'
end

关于ruby-on-rails - gmaps4rails 未在指定的 div id 中呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53696296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com