2017-08-30 7 views
3

Der erste Block arbeitet alsAngular 4 http get mit Abfrageparametern

erwartet
getQuotes(): Observable<Quote[]> { 
    return this.http.get(this.url) 
     .map((res: Response) => res.json()) 
     .catch((error: any) => Observable.throw(error.json().error || 'Server error')); 
} 

Jetzt bin ich Tring Abfrage params hinzufügen, um this.Url und die URL geändert haben nicht

getQuotes2(): Observable<Quote[]> { 
    let myParams = new URLSearchParams(); 
    myParams.append('author', 'authorName'); 
    myParams.append('catid', '123'); 
    let options = new RequestOptions({ params: myParams }); 

    return this.http.get(this.url, options) 
     .map((res: Response) => res.json()) 
     .catch((error: any) => Observable.throw(error.json().error || 'Server error')); 
} 

I habe Devtools eingecheckt. Caching ist ausgeschaltet. Ich habe {search: myParams} mit RequestOptions ausprobiert und this.http.get (this.url, {params: myParams}) zurückgegeben. Wo ich nicht hinsehe, sehe ich String-Konkatation. Diese Parameter sind optional und ich füge sie an Bedingung an.

Antwort

5

Haben Sie Params importiert?

import { URLSearchParams } from '@angular/http'; 
+0

Ich habe überprüft, ja es funktioniert. Das Fehlen des Imports verursacht keine Fehlermeldungen. – Eldar

+1

@Eldar weil es https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams;) gibt –