我正在尝试从网址中删除查询字符串(带有邀请令牌)而不重定向网页。
所以示例url看起来像:
example.com/?invitation=fooo
我已经包含了ng-router,我使用hashbang(我不能在我们的项目中使用html5模式)用于路由,但是这个查询字符串是主url的一部分(在#之前),因为我想要服务器看到它。
在常规应用中,我只会使用历史记录API:
history.replaceState(null, null, '/');
但是在使用Angular的应用程序中会导致错误:
Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
我不能使用$ location.path,因为AFAIK它只允许修改url的角度可路由部分,即在我的情况下#之后的部分。 $ location.search甚至没有看到它。
您是否知道如何在不重定向页面的情况下使用angular从URL中删除查询字符串?
答案 0 :(得分:1)
在Angular中,URL的所有修改都应通过$location
服务进行。您可以通过使用空对象调用$location.search
方法来清除查询字符串:$location.search({})
。另外,请查看有关如何使用$location
服务here