与$ location.search():如何从url中删除参数,当它为null

$location.search()来设置一个url

传递给search()的search参数由表单设置。 select和取消select一个元素会导致一些参数值为“null”,所以url看起来像这样:

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

所以我想从url中删除这些“空”参数。 在文档中,有一个“paramValue”,它可以作为第二个parameter passing给.search(search,paramValue): 如果该值为null ,则该参数将被删除。

但我不能做这个工作…任何build议?

编辑:这里是基于@BKM解释的解决scheme

要删除每个null参数,有必要遍历所有的参数,并testing每个参数,如下所示:

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

使用$location服务,可以通过分配一个空值来删除search参数:

在你的参数为null的情况下,在你的情况下'parameter'你可以通过分配给它一个空值,如:

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

希望能帮助到你。

您可以使用$location.search({})一次性清除所有内容。

你也可以这样做:

 var search = $location.search(); if (search.parameter == 'null') { $location.search({'parameter': null}); }