francoisromain francoisromain - 3 months ago 21
AngularJS Question

with $location.search(): how to remove a parameter from the url when it's null

$location.search()
to set an url

the search parameter which is passed to the
search()
is set by a form. selecting and deselecting an element causes some parameters value to be "null" and so the url looks like this :

myapp.com/search?type=text&parameter=null


so i would like to remove those "null" parameters from the url. In the documentation, there is a "paramValue" which can be passed as a second parameters to .search(search, paramValue) : If the value is
null
, the parameter will be deleted.


but i can't make this work… any suggestion ?

edit: here is a solution based on @BKM explanation

to remove every parameters which are
null
, it's necessary to loop through all of them and test each one, like this :

for (var i in search) {
if (!search[i]) $location.search(i, null);
}
$location.search(search);

BKM BKM
Answer

Using the $location service, you can remove the search param by assigning it a null value:

In the case when your parameter is null, in your case 'parameter' you can remove it from the url by assigning it a null value like;

$location.search('parameter', null);

Hope it helps.

Comments