Условные перенаправления на дочерние маршруты - PullRequest
0 голосов
/ 29 января 2019

У меня есть сценарий, в котором у меня есть лениво загруженные дочерние маршруты, которые должны отображаться условно:

const routes: Routes = [
  {
    path: '',
    component: ParentComponent,
    canActivate: [ParentGuard],
    children: [
      {
        path: 'child1', loadChildren:'./child1/child1.module#Child1Module'
      },
     {
        path: 'child2', loadChildren:'./child2/child2.module#Child2Module'
      },
    ]
  }
];

Я перехожу на ParentComponent с некоторой страницы, например:

this.router.navigate('app/parent');

Теперьпроблема в том, что я должен показать child1 и child2 компоненты, основанные на каком-то условии.

Для этого я добавил Guard,

      canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot){
    if (this.isAdmin) {
      this.router.navigate(['app/parent/child1']);
      return false;
    } else {
      this.router.navigate(['app/parent/child2']);
return false;
    }
    return true;
      }

Однако, это приводит к тому, что этот сторож вызывается повторно, и мое приложение зависает.Что я могу сделать, чтобы это исправить?

...