2017-08-21 3 views
2

So wanderte von http auf Httpclient und ich versuche HttpParams zu verwenden, um die params für meine Erhaltungs-Anforderung zu setzen ....Angular4: Wie setze ich Params mit HttpParams?

Die Logik

sehr einfach ist
const params = new HttpParams(); 

if(expression) { 
    params.set('foo', 'bar'); 
} 

this.http.get('url.json', {params: params}); 

Auf diese Weise die params nicht ist durchgekommen! das params.set ('foo', 'bar'); nichts tut .. (unabhängig von der Bedingung erfüllt;))

Wenn ich es wie folgt obwohl tun:

const params = new HttpParams().set('foo', 'bar'); 

foo gesetzt!

Wie kann ich HttpParams in meinem Fall verwenden (wo einige Bewertung beteiligt ist) ??

Antwort

5

versuchen, diese

let params = new HttpParams(); 

if(expression) { 
    params = params.set('foo', 'bar'); 
} 

API:

/** 
* Construct a new body with a new value for the given parameter name. 
*/ 
set(param: string, value: string): HttpParams; 
+0

glauben Sie mir, let versucht, aber es wird nicht den Wert einstellen .... egal wie oft habe ich die params.set Danach wird nur der zum Konstruktor verkettete Code gesetzt:/ –

+1

forgotten params = params.set ('foo', 'bar') –

+1

ja es funktioniert jetzt .... was für ein seltsames Muster: / –

Verwandte Themen