2016-05-12 15 views
0

Also, ich versuche, eine Funktion zu implementieren, damit Benutzer nach Anbietern suchen, wenn sie sich einloggen. Ich verwende Geocoder und gmap4rails. Wenn ich jedoch die Karte einrichte und versuche, die App auszuführen, wird die Karte überhaupt nicht angezeigt.Uncaught RangeError: Maximale Call-Stack-Größe überschritten

das ist meine Ansicht:

<%= form_tag dashboard_path, :method => :get do %> 
<div class= "row"> 
    <p> 
    <%= text_field_tag :search, params[:search], class: "col-md-4"%> 
    <%= submit_tag "Search Near", class: "btn btn-info", :name => nil %> 
    </p> 
    </div> 
<% end %> 

<div style='width: 800px;'> 
    <div id="map" style='width: 9000px; height: 500px;'></div> 
</div> 

<script type="text/javascript"> 
    handler = Gmaps.build('Google'); 
    handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){ 
    markers = handler.addMarkers(<%=raw @hash.to_json %>); 
    handler.bounds.extendWith(markers); 
    handler.fitMapToBounds(); 
    handler.getMap().setZoom(15); 

}); 

</script> 

die Steuerung für Dashboard-Ansicht:

def dashboard 
    if params.empty? 
     gflash notice: "you cant search without a term" 
     redirect_to "/" 

    elsif params[:search].present? 
     @vendors = Vendor.near(params[:search], 50) 
     @hash = Gmaps4rails.build_markers(@vendors) do |vendor, marker| 
      marker.lat vendor.latitude 
      marker.lng vendor.longitude 
      marker.infowindow vendor.discount_info 
      marker.picture ({ 
      "url" => "assets/marker.png", 
      "width" => 32, 
      "height" => 32}) 
     end 
    else 
     @vendors = Vendor.all 
     @hash = Gmaps4rails.build_markers(@vendors) do |vendor, marker| 
      marker.lat vendor.latitude 
      marker.lng vendor.longitude 
      marker.picture ({ 
      "url" => "assets/marker.png", 
      "width" => 32, 
      "height" => 32}) 

     end 
    end 

im Entwicklungsmodus, wenn ich den Browser und melden Sie sich in der Web-Konsole zu öffnen, sagte der Fehler ist:

Uncaught RangeError: Maximum call stack size exceeded 

Ich bin mir nicht sicher, was diesen Fehler verursacht, habe ich die Kartengröße entsprechend eingestellt.

+0

Haben Sie Fehler in der Javascript-Konsole Ihres Browsers? – pgaspar

+0

@pgaspar Ich habe die Fehler von der Webkonsole eingefügt – KhoaVo

Antwort

0

Das Problem gelöst, der Code ging in die Endlosschleife, weil Gmap abstürzt, falls der Suchparameter leer ist, er wusste nicht, wo er den Marker setzen soll, also setze ich nur den Längen- und Breitengrad für diesen Fall.