Angular canActivate изменения URL - PullRequest
0 голосов
/ 15 ноября 2018

Я реализовал CanActivate маршрутизатор для моего приложения Angular 5.2. Если он возвращает true, URL-адрес не изменяется, но когда он возвращает false, URL-адрес изменяется и добавляет путь к URL-адресу. Везде в приложении мы меняем маршрут, это skipsLocationChange, поэтому URL никогда не меняется, но в этом случае это происходит. Вот как выглядит код canActivate.

canActivate(){
  if(someRightsThatReturnsTrue)
    return true;
  else{
    this.router.navigateByURL('noauthpage', {skipLocationChange: true});
    return false;
  }
}

Есть идеи, почему меняется URL? Это механика Маршрутизатора, потому что он не может отобразить страницу и «терпит неудачу»?

1 Ответ

0 голосов
/ 07 мая 2019

нашел обходной путь, однажды названный

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

, вы можете позвонить

this.location.replaceState('current_page');

, чтобы немедленно заменить URL браузера.

...