2017-10-26 5 views
3

Ich versuche, in jedem Marker-Info-Fenster einen Titel anzuzeigen, der den Namen des Ereignisses anzeigt. Im Moment kann ich nur den allerletzten Elementnamen im JSON-Array anzeigen und bin mir nicht sicher, wie ich die anderen zu ihrem Ereignistitel machen kann. Jede Hilfe wird geschätzt, danke! Ich möchte auch, um schließlich mit dem Ereignisnamen ein paar anderen Elemente wie „Eventphone“ etc ...Marker zeigt nur das letzte Element im JSON-Array an

Die Info-Fenster nur zeigt letztes Element zeigt zusammen:

current display

was das Array wie folgt aussieht:

JSON elements display

meines Add Marker-Funktion:

addMarkersMap(markers){ 
for(let marker of markers) 
{ 
var loc = marker.calEvent.locations[0]['coords']; 
var name = marker.calEvent['eventName']; 

    console.log(name); //displays name of each event within this object 


    marker = new google.maps.Marker({ 
    position: loc, 
    map: this.map, 

    }); 



    var infoWindow = new google.maps.InfoWindow({ 

     //content: name 
    }); 


     google.maps.event.addListener(marker, 'click', function() { 
     infoWindow.open(this.map, marker); 
     infoWindow.setContent(name); 
     }); 



} 
} 

JSON:

http://app.toronto.ca/cc_sr_v1_app/data/edc_eventcal_APR?limit=500

Antwort

3

EDIT: Also, einfach alle Ihre var-let ändern let ‚s richtige Blockvariablendeklaration zu arbeiten, zu ermöglichen scoped und auch um der Konvention zu folgen.

Es ist möglich, dass ein Schließungsproblem auftritt, bei dem der Wert der letzte ist.

Obwohl let sollte dieses Problem lösen, wie es Ihre in Block UMFANG macht, versuchen Sie Ihr addListener in eine IIFE zu machen und sehen, ob das hilft:

(function(marker) { 
    google.maps.event.addListener(marker, 'click', function() { 
    infoWindow.open(this.map, marker); 
    }); 
}(marker)); 

Weitere Informationen über Schließungen here

+0

versucht, mit Ihr Edit, aber jedes Info-Fenster zeigt immer noch "The Santa Claus Parade" – skotienos13

+0

Wie sieht ein Beispiel 'locations' json aus? Können Sie das in Ihren Fragebeitrag aufnehmen? Und deine 9 anderen Konsolenfehler könnten dies beeinflussen. Sie können diese auch in Ihrem Post auflisten. Versuchen Sie auch, Ihre 'var' für Konventionen in' let' zu ändern. – henrisycip

+0

Hier ist der JSON-Feed: http://app.toronto.ca/cc_sr_v1_app/data/edc_eventcal_APR?limit=500 – skotienos13

Verwandte Themen