Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
155
rated 0 times [  161] [ 6]  / answers: 1 / hits: 74285  / 11 Years ago, fri, september 6, 2013, 12:00:00

How to build a url with query parameters in Angularjs.



I see the API $location.search()



the problem is $location(url) is to redirect to the url. In my case, I want to pass a url and key:value pairs for the query params and build the url. something like



url: /a/b/c
params: {field1: value1, field2: value2}



result: /a/b/c?field1=value1&field2=value2



I like to use this url for links. I have also seen angular encode ? , & characters. Can I avoid this?



Edit:



My intention was to use the url as href for anchor elements. I do use $http to send the request, but sometimes I need to provide a link, with query params (based on the current object)



Thanks


More From » angularjs

 Answers
90

There is a nice solution as of 1.4+. You can build a query string from a parameters object with $httpParamSerializer :



var qs = $httpParamSerializer(params);


See docs here




Default $http params serializer that converts objects to strings
according to the following rules:




{'foo': 'bar'} results in foo=bar
{'foo': Date.now()} results in foo=2015-04-01T09%3A50%3A49.262Z (toISOString() and encoded representation of a Date object)
{'foo': ['bar', 'baz']} results in foo=bar&foo=baz (repeated key for each array element)
{'foo': {'bar':'baz'}} results in foo=%7B%22bar%22%3A%22baz%22%7D (stringified and encoded representation of an object)
Note that serializer will sort the request parameters alphabetically.

[#75844] Thursday, September 5, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
reesel

Total Points: 345
Total Questions: 124
Total Answers: 119

Location: Trinidad and Tobago
Member since Thu, Dec 1, 2022
2 Years ago
;