48

$location.search()设置一个网址

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

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

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

但我无法完成这项工作……有什么建议吗?

编辑:这是基于@BKM解释的解决方案

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

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

3 回答 3

102

使用该$location服务,您可以通过为其分配一个空值来删除搜索参数:

在您的参数为空的情况下,在您的情况下,'parameter'您可以通过为其分配一个空值来将其从 url 中删除,例如;

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

希望能帮助到你。

于 2013-09-02T05:14:20.857 回答
31

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

于 2015-07-24T07:57:04.537 回答
-1

你也可以这样做:

var search = $location.search();
if (search.parameter == 'null') {
  $location.search({'parameter': null});
}
于 2017-08-13T14:14:34.443 回答