角度 JavaScript 清理网址

angular javascript cleaning URL

本文关键字:JavaScript 角度      更新时间:2023-09-26

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

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

2)通过单击类似http://www.example.com?do=this&param=1234的链接

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

遍历页面由 javascript 命令处理:

$window.location.href="#/other_page; .

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

http://www.example.com?do=this&param=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

您可以使用

$location服务。它说:

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

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

$location.path('other_page')

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

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

$window.location.href = location.protocol          + 
                        "//"                       + 
                        location.host              + 
                        "/index.html#/other_page"    ;

这就成了诀窍。也许不是最优雅的,但它可以根据需要工作。

谢谢你们(@vivek和@prakashA)的支持。