Javascript 用嵌入式ruby循环Google地图标记?
我是rails的新手,我想知道如何准确地循环这些标记。我的JS变量“count”无法识别,我需要一些帮助来循环我的ruby数组,或者需要另一个解决方案Javascript 用嵌入式ruby循环Google地图标记?,javascript,ruby-on-rails,google-maps,embedded-ruby,Javascript,Ruby On Rails,Google Maps,Embedded Ruby,我是rails的新手,我想知道如何准确地循环这些标记。我的JS变量“count”无法识别,我需要一些帮助来循环我的ruby数组,或者需要另一个解决方案 function initMap() { var mapDiv = document.getElementById('map'); var map = new google.maps.Map(mapDiv, { center: {lat: 44.540, lng: -78.54
function initMap() {
var mapDiv = document.getElementById('map');
var map = new google.maps.Map(mapDiv, {
center: {lat: 44.540, lng: -78.546},
zoom: 8
});
var total = <%= mapcount %>
var javascriptcount = 0;
var count = 0;
<% arraylat = [] %>
<% arraylng = [] %>
<% mapposttotal.each do |q| %>
<% arraylat << q.lat %>
<% arraylng << q.lng %>
<% end %>
for (; javascriptcount <= total; javascriptcount++) {
var marker = new google.maps.Marker({
position: {lat: <%= arraylat[count] %>, lng: <%= arraylng[count] %>},
map: map,
title: 'Hello World!'
});
count = count + 1;
console.log()
}
var Clicker = document.getElementById('PostIt');
Clicker.addEventListener('click', function() {
window.location='/newpost.html';}, false);
}
<% end %>
函数initMap(){
var mapDiv=document.getElementById('map');
var map=new google.maps.map(mapDiv{
中心:{lat:44.540,lng:-78.546},
缩放:8
});
var总计=
var javascriptcount=0;
var计数=0;
由于您是Rails新手,我建议您采用以下解决方案:
1.在MarkersController
中添加操作:
def index
respond_to do |format|
format.json do
markers = Marker.all.map do |marker|
{
lat: marker.lat,
lng: marker.lng
}
end
render json: markers
end
end
end
2.在routes.rb中
get "/markers", to: "markers#index"
3.Javascript:
function initMap() {
$.getJSON("/markers", function(data) {
// All your js code to populate markers go in here.
})
}
这就是它的基本工作原理。只需根据您的需要定制代码将erb代码和javascript混为一谈是非常糟糕的。您最好通过ajax调用(如果它们存储在db中)获取标记信息,并将它们填充到success
response中