मैं वर्तमान में रेल एप्लिकेशन कि निम्न त्रुटि हो रही है पर काम कर रहा हूँ। जब link_to
क्लिक किया जाता है तो Google मानचित्र द्वारा बनाए गए सभी DOM तत्वों को DOM के भीतर रखा जाता है। जब कोई नया पृष्ठ प्रस्तुत किया जाता है तो Google Map DOM तत्वों का एक और सेट डुप्लिकेट और त्रुटि उत्पन्न होता है।गूगल रोकें नक्शे जे एस कई बार क्रियान्वित रेल Turbolinks की वजह से
मैं 'data-no-turbolink' => true
को अपने link_to
पर जोड़कर इसे बहुत जल्दी ठीक कर सकता हूं लेकिन यह टर्बोलिंक का उपयोग करने के उद्देश्य को हरा देता है क्योंकि यह ताज़ा करने के लिए मजबूर करता है।
मुझे आश्चर्य है कि क्या इस डुप्लिकेशंस को टर्बोलिंक बंद किए बिना रोकने के लिए कोई संभावित कार्यवाही है?
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: false
});
var markerSVG = {
path: 'M1152 640q0-106-75-181t-181-75-181 75-75 181 75 181 181 75 181-75 75-181zm256 0q0 109-33 179l-364 774q-16 33-47.5 52t-67.5 19-67.5-19-46.5-52l-365-774q-33-70-33-179 0-212 150-362t362-150 362 150 150 362z',
fillColor: '#f32e74',
fillOpacity: 1,
strokeWeight: 0,
anchor: new google.maps.Point(870,1650),
scale: (0.02, 0.02)
};
var mapMarker = new google.maps.Marker({
position: map.getCenter(),
map: map,
icon: markerSVG,
});
}
}
दृश्य:
<% if @job.address.latitude && @job.address.longitude %>
<%= javascript_tag do %>
window.mapLatLng = {lat: <%= @job.address.latitude %>, lng: <%= @job.address.longitude %>};
<% end %>
<% content_for :js do %>
<script async defer src="https://maps.googleapis.com/maps/api/js?signed_in=false&callback=initMap"></script>
<% end %>
<% end %>
यह समाधान मेरे लिए काम नहीं करता है – sixty4bit
अभी भी ऊपर दिए गए मुद्दे को ऊपर दिए गए हैं –