Angular canActivate更改URL

时间:2018-11-15 17:49:23

标签: angular angular-ui-router

我为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机械师,因为它无法呈现页面并且“失败”了?

1 个答案:

答案 0 :(得分:1)

找到了解决方法, 曾经称为

this.router.navigate(['noauthpage'], { skipLocationChange: true });

您可以致电

this.location.replaceState('current_page');

立即替换浏览器网址。