Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何在angular.js中手动修改历史记录_Angularjs_Url_Angular Routing - Fatal编程技术网

Angularjs 如何在angular.js中手动修改历史记录

Angularjs 如何在angular.js中手动修改历史记录,angularjs,url,angular-routing,Angularjs,Url,Angular Routing,我正在尝试从url中删除querystring(带有邀请令牌),而不重定向页面 因此,示例url如下所示: example.com/?invitation=fooo 我已经包括了ng router,我正在使用hashbang(我不能在我们的项目中使用html5模式)进行路由,但是这个查询字符串是主url(在#之前)的一部分,因为我希望服务器看到它 在常规应用程序中,我只会使用历史API: history.replaceState(null,null,“/”) 但在使用角度传感器的应用中,它会导致

我正在尝试从url中删除querystring(带有邀请令牌),而不重定向页面

因此,示例url如下所示:

example.com/?invitation=fooo

我已经包括了ng router,我正在使用hashbang(我不能在我们的项目中使用html5模式)进行路由,但是这个查询字符串是主url(在#之前)的一部分,因为我希望服务器看到它

在常规应用程序中,我只会使用历史API:

history.replaceState(null,null,“/”)

但在使用角度传感器的应用中,它会导致错误:

错误:[$rootScope:infdig]已达到10$digest()迭代次数。流产

我不能使用$location.path,因为它只允许修改url的角度可路由部分,即在我的例子中#之后的部分$location.search甚至看不到它


您知道如何使用angular从url中删除querystring而不重定向页面吗?

在angular中,url的所有修改都应该通过
$location
服务进行。可以通过使用空对象调用方法来清除查询字符串:
$location.search({})
。另外,请查看关于如何使用
$location
服务的指南,就像我说的,这个查询字符串不在可路由部分,因为它在hashbang之前,我没有使用HTML5模式$location.search看不到它,并且无法修改它。什么是“可路由”部件
$location
完全可以像
http://www.foo.com?bar=23#baz
。由于我处于hashbang模式,示例url可能如下所示:
www.example.com/?invitation=fooo\/base/path?foo=bar#baz
我指的是#之后的可路由部分!