2017-01-18 2 views
-1

Hier ist mein Code:Angular2: Wie kann ich ein Array von Objekten zugreifen, die abgerufen werden unter Verwendung eines Http.get

import { Component, ViewChild, ElementRef } from '@angular/core'; 
import { NavController } from 'ionic-angular'; 
import { EventService } from '../../app/event.service'; 

declare var google; 

@Component({ 
    selector: 'map-view', 
    templateUrl: 'mapview.html' 
}) 
export class MapView 
{ 

    @ViewChild('map') mapElement: ElementRef; 
    map: any; 
    events: any; 

    constructor(public navCtrl: NavController, private eventService: EventService) 
    { 

    } 

    ngOnInit() 
    { 
    this.getEvents(); 
    this.loadMap(); 
    } 

    loadMap() 
    { 
    let center = new google.maps.LatLng(-34.9290, 138.6010); 
    let mapOptions = 
    { 
     zoom: 13, 
     center: center, 
     mapTypeControl: false, 
     streetViewControl: false, 
    } 
    this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions); 
    } 

    getEvents() 
    { 

    this.eventService.getEvents().subscribe(response => 
    { 
     this.events = response.lexington; 
     console.log(this.events[0]); 
    }) 


    } 
} 

Im Grunde, was das jetzt tut einen Dienst ruft die JSON-Objekte von einer URL abruft . Ich weiß, dass dieser Teil gut funktioniert. Wie kann ich diese Antwort jedoch für den Rest der Datei verfügbar machen?

+1

Ich gehe davon aus, dass der 'eventService.getEvents()' gibt eine oder mehrere JSON-formatierte Nachrichten. Jede Chance, dass wir sehen können, wie diese aussehen? Kannst du eins zu der Frage hinzufügen? –

+0

Was genau müssen Sie erreichen? Was muss für die Datei resistent sein? Wo muss es in der Datei verwendet werden? –

+0

@ R.Richards sicher: {"name": "John Doe Live", "Beschreibung": "Comedy", "Region": "NY", "Veranstaltungsort": "Comedy Bar", "Adresse": "123 main "," geocode ": [111.111, 111.111]," start ":" 1484935200 "," end ":" 1484946000 "} –

Antwort

0

Möchten Sie die Antwort einfach speichern?

bearbeiten

Aus den Kommentaren, es sieht aus wie Sie die Antwort aufzufüllen Google Maps verwenden möchten.

So tut nur, nachdem Sie die Ereignisse json Objekt

Wie erhalten:

@ViewChild('map') mapElement: ElementRef; 
    map: any; 
    events: any; 
    eventsReponse:any; // this 

    getEvents() 
    { 

    this.eventService.getEvents().subscribe(response => 
    { 
     this.eventsReponse = response; 

     // You have the response here, you can populate google maps 
     // here like 

     this.populateGoogleMaps(response); 
     ... 
    }) 


} 
+0

Ahh! Ich habe das früher versucht, aber dachte, es hat nicht funktioniert. Ich habe nur vergessen, das "Dies" hinzuzufügen. vor der Funktion! Vielen Dank! –

+0

Nur zur Info, Ihre Frage war sehr irreführend, es hätte sein sollen, dass Ihre Funktion nicht angerufen wird, weil Sie "das" verpasst haben –

Verwandte Themen