我为Angular 5.2应用程序实现了CanActivate
路由器防护。如果返回true,则URL不会更改,但是返回false时,URL会更改并将路径附加到URL。我们在应用程序中的任何地方都更改了路由skipsLocationChange
,因此URL永远不会更改,但是在这种情况下会更改。 canActivate
代码基本上就是这样。
canActivate(){
if(someRightsThatReturnsTrue)
return true;
else{
this.router.navigateByURL('noauthpage', {skipLocationChange: true});
return false;
}
}
有关URL为何更改的任何想法?是否是Router机械师,因为它无法呈现页面并且“失败”了?
答案 0 :(得分:1)
找到了解决方法, 曾经称为
this.router.navigate(['noauthpage'], { skipLocationChange: true });
您可以致电
this.location.replaceState('current_page');
立即替换浏览器网址。