Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用嵌入式ruby循环Google地图标记?_Javascript_Ruby On Rails_Google Maps_Embedded Ruby - Fatal编程技术网

Javascript 用嵌入式ruby循环Google地图标记?

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

我是rails的新手,我想知道如何准确地循环这些标记。我的JS变量“count”无法识别,我需要一些帮助来循环我的ruby数组,或者需要另一个解决方案

 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中