角度javascript清理URL

角度javascript清理URL,javascript,angularjs,Javascript,Angularjs,我使用AngularJS开发了一个SPA应用程序。可以通过两种方式访问应用程序: 1) 通过输入地址(示例)www.example.com,或 2) 通过点击像http://www.example.com?do=this¶m=1234 当应用程序启动时,它会检查URL,如果找到合适的参数,它会提示用户登录/注册,然后转到应用程序中的特定页面,在该页面中,访问者应该使用参数1234执行与动作相关的一些活动 页面遍历由javascript命令处理: $window.location.href

我使用AngularJS开发了一个SPA应用程序。可以通过两种方式访问应用程序:

1) 通过输入地址(示例)
www.example.com
,或

2) 通过点击像
http://www.example.com?do=this¶m=1234

当应用程序启动时,它会检查URL,如果找到合适的参数,它会提示用户登录/注册,然后转到应用程序中的特定页面,在该页面中,访问者应该使用参数1234执行与动作
相关的一些活动

页面遍历由javascript命令处理:

$window.location.href=“#/other_page;”

到目前为止,这一切正常,只是URL与参数一起保留。因此,每当应用程序决定需要转到另一个页面时,URL(在浏览器的地址栏中)将如下所示:

http://www.example.com?do=this¶m=1234#/other_page

这会扰乱应用程序的行为

我的问题是:一旦我能够从原始URL提取接收到的参数,我想清理URL并继续其正常内容,这将类似于:

http://www.example.com#/other_page

如何做到这一点


提前感谢。

使用$location服务从浏览器的地址栏中清除搜索查询参数

语法是:

$location.search({});
例如,在完成登录或注册页面后

$scope.login = function(){
   // Check your logic and clear search params
    if($routeParams && $routeParams.src)
   {
       $location.search({});
       $location.path($scope.baseurl+$routeParams.src);
   }
};
我在这里使用$routeParams服务,您也可以查看$window.location.search,您可以使用该服务。它显示:

对地址栏中URL的更改将反映到$location服务中,对$location的更改将反映到浏览器地址栏中

所以,基本上你可以做到:

$location.path(“其他页面”)


它应该清除URL并设置此路径。

刚刚找到一个有效的解决方案。我使用以下命令:

$window.location.href = location.protocol          + 
                        "//"                       + 
                        location.host              + 
                        "/index.html#/other_page"    ;
这就构成了这个把戏。也许不是最优雅的,但它可以根据需要工作


谢谢大家(@vivek和@prakashA)的支持。

Hello@vivek。我刚刚测试了你的解决方案,不幸的是,它没有按描述工作。Hello@vivek。我找到了一个工作的解决方案。请看我自己的答案。谢谢你的帮助。Hello@prakashA,你的解决方案也不工作(与上面vivek建议的结果大致相同).嗯……它行得通,但行不通。我将提出一个新问题,详细介绍这个问题。