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

时间:2013-09-02 00:59:02

标签: angularjs

$location.search()设置网址

传递给search()的搜索参数由表单设置。选择和取消选择元素会导致某些参数值为“null”,因此网址如下所示:

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

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

但我不能做这项工作......有什么建议吗?

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

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

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

3 个答案:

答案 0 :(得分:94)

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

如果您的参数为null,在您的情况'parameter'中,您可以通过为其指定空值来将其从网址中删除;

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

希望它有所帮助。

答案 1 :(得分:30)

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

答案 2 :(得分:-1)

你也可以这样做:

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