我目前正在处理Rails应用程序,它收到以下错误:
您已在此页面上多次添加Google Maps API.这可能会导致意外错误.
经过一番研究后,我发现Turbolinks造成了这个问题.当link_to点击全部由谷歌地图创建的DOM元素都在DOM中保留.当渲染新页面时,会添加另一组Google Map DOM元素,从而导致重复和错误.
我可以通过简单地添加'data-no-turbolink' => true到我的方式来快速解决这个问题,link_to但这会破坏使用Turbolinks的目的,因为它会强制刷新.
我想知道是否有一个潜在的解决方法来阻止这种复制而不关闭Turbolinks?
map.js:
var initMap = function initMap() {
if (typeof mapLatLng != "undefined") {
// we can use this to set the map zoom
// in different places.
// use: window.setZoom = 12;
if (typeof setZoom ==! "undefined") {
var mapZoom = setZoom;
} else {
var mapZoom = 14;
}
var map = new google.maps.Map(document.getElementById('map'), {
zoom: mapZoom,
center: mapLatLng,
disableDefaultUI: true,
scrollwheel: …Run Code Online (Sandbox Code Playgroud)