2016-07-11 15 views
0

Am bekommen Daten aus dem Backend (api) und es mit ngFor wie folgt dargestellt:wie Parameter in einem http senden Anfrage bekommen

<li *ngFor="let event of events"> 
    {{event.name}} 
    {{event.city}} 
</li> 

meine Ergebnisse wie diese ist;

wedding 
    city 1 

    graduation 
    city 2 

jetzt möchte ich Detailinformationen über ein Ereignis holen, wenn ein Benutzer klicken Sie auf das Ereignis, und ich will dieses Ziel erreichen, indem sie ein event_id vorbei, die ich nicht auf die Back-End der Ansicht war anzuzeigen.

<li *ngFor="let event of events" (click)="moreDetails(event)"> 
     {{event.name}} 
     {{event.city}} 
    </li> 

Und dann in meiner Komponente:

moreDetails(ev){ 
    // 
    this._http.get(this.url + event_id) 
     .map((res:Response) => res.json()) 
     .subscribe(
      data => this.getEventData = data, 
      error =>this.logError(error), 
      () => console.log('get request completed sucesfully') 
     ); 
} 

Dank im Voraus

+0

Wie erwartet die API den ID-Parameter? Wie ein anderer Pfad in der URL (http: // someurl/id) oder ähnliche URL-Parameter (http: // someurl? Id = someid) –

Antwort

0

Ich nehme Ihre Veranstaltungen ids haben, so wird Ihre Veranstaltung ID ev.id

moreDetails(ev){ 
    // 
    this._http.get(this.url + ev.id) 
     .map((res:Response) => res.json()) 
     .subscribe(
      data => this.getEventData = data, 
      error =>this.logError(error), 
      () => console.log('get request completed sucesfully') 
     ); 
} 
0

einfach sein passieren Sie den eindeutigen Schlüssel (ID) zusammen mit der URL durch Anhängen (oder wir können sagen, verketten String mit unique_id) zu ihm l ike this: -

moreDetails(ev){ 
    let url = this.url+event.id+'/'; 
    this._http.get(url) 
     //...other functionality 
}