角度javascript清理URL
我使用AngularJS开发了一个SPA应用程序。可以通过两种方式访问应用程序: 1) 通过输入地址(示例)角度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
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建议的结果大致相同).嗯……它行得通,但行不通。我将提出一个新问题,详细介绍这个问题。