1
votes

I am trying to send multiple parameters to HttpParams in Angular 5 using the following approach:

            paramsObject: any
            params = new HttpParams();
            for (let key in paramsObject) {
                params.set(key, paramsObject[key]);
            }

This worked in Angular 4, but in Angular 5 since HttpParams is immutable object the params are not being set to HttpParams and null parameters are being passed. Could you let me know how I can set multiple parameters to HttpParams. I am using Angular 5 and TypeScript.

1
See this answer. Looping isn't really needed. - R. Richards
Put your params in an arguments of constructor angular.io/api/common/http/HttpParams#constructor or modify params = params.set(key, para...), This class is immutable - all mutation operations return a new instance. - botika
@KelvinLai: The solution worked, thanks a lot. - Valla

1 Answers

1
votes

You need to reassign the params again:

paramsObject: any;
let params = new HttpParams();

for (let key in paramsObject) {
    params = params.set(key, paramsObject[key]);
}

return params;