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

Fra*_*ain 47 angularjs

$location.search() 设置网址

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

myapp.com/search?type=text&parameter=null
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

for (var i in search) {
    if (!search[i]) $location.search(i, null);
}
$location.search(search);
Run Code Online (Sandbox Code Playgroud)

BKM*_*BKM 95

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

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

$location.search('parameter', null);
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.


Esc*_*ape 30

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