Как выполнить маршрутизацию в другом компоненте при использовании canActivate () - PullRequest
0 голосов
/ 25 декабря 2018

Я хочу перейти прямо здесь, здесь компонент ResetPassIdComponent когда я использую canActivate ();Теперь, когда я щелкаю по этому компоненту ResetPassIdComponent, моя заявка перемещается сначала в /outsidelogin/login, а во вторую в resetPasswordRequest/:id

export class AuthGuard implements CanActivate {
    constructor(private router: Router, private auth: LoginService) { }
    canActivate(): boolean {
        if (this.auth.isAuthenticated()) {
            return true;
        }
        this.router.navigate(['/outsidelogin/login']);
        return false;
    }
}

Так что в этом canActivate () у меня есть 2 условия, первое, если я 'Если вы не авторизованы, перейдите по ссылке this.router.navigate(['/outsidelogin/login']);

My routing.ts

const routes: Routes = [
  {
    path: 'home',
    component: HomeComponent,
    canActivate: [AuthGuard],
    children: [
      {
        path: 'fp', component: FirstPageComponent
      }
    ]
  },
  {
    path: 'outsidelogin',
    component: outsideloginComponent,
    children: [
      { path: 'login', component: LoginFirstComponent },
      { path: 'register', component: RegisterComponent },
    ]
  },
    { path: '', redirectTo: '/home/fp', pathMatch: 'full' },
    { path: 'resetPasswordRequest/:id', component: ResetPassIdComponent }
];

Пожалуйста, не могли бы вы поделиться со мной идеей, как решить мою проблему?

1 Ответ

0 голосов
/ 26 декабря 2018

Сначала вам нужно получить параметр в resetPasswordRequest /: id, если при входе в систему получите параметр следующим образом и преобразуйте строку в число.Вы должны сохранить свой токен аутентификации в кэше браузера.

    // import in resetPasswordeRquest Component.
    import { Route, AcivatedRoute } from '@angular/router'; 

    // inside component class;
    id: number;
    constructor(private router: Router, private route: ActivatedRoute){
       this.route.paramMap.subscribe(params => {
          this.id = +params.get('id');   
       }           
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...