I have Angular 5 routes config like this: 
const loginRoutes: Routes = [
  {
    path: '',
    component: RegistationComponent,
    children: [
      { path: '', redirectTo: 'sign-in', pathMatch: 'full' },
      { path: 'sign-in', component: SigninComponent },
      { path: 'sign-up', pathMatch: 'prefix', component: SignupComponent },
      { path: 'twofactor', component: TwofactorComponent },
    ]
  }
];

Funciona bien si busco la ruta exacta, pero cuando agregué los parámetros de consulta, dice:

http://localhost:4200/login/reg/sign-up?inviteCode=b8f496ca68a37c174459

Redirigirá de nuevo a la ruta sign-in. ¿Cómo puedo solucionar esto?

2
Le Duy Khanh 17 sep. 2018 a las 09:45

3 respuestas

La mejor respuesta

Descubrí el problema, no debido a la configuración del enrutador, es debido a que el servicio de protección de autenticación hace la redirección.

2
Le Duy Khanh 17 sep. 2018 a las 07:44

Intente cambiar su ruta de redireccionamiento a algo como esto:

const loginRoutes: Routes = [
  {
    path: '',
    component: RegistationComponent,
    children: [
      { path: 'sign-in', component: SigninComponent },
      { path: 'sign-up', pathMatch: 'prefix', component: SignupComponent },
      { path: 'twofactor', component: TwofactorComponent },
      { path: '', redirectTo: 'sign-in', pathMatch: 'full' },
      { path: '**', redirectTo: 'sign-in', pathMatch: 'full' }
    ]
  }
];

ACTUALIZACIÓN: ruta path:'' agregada

0
Maksym Shevchenko 17 sep. 2018 a las 07:05

Definirlo así

  { path: 'sign-in/:invitecode', component: SigninComponent },
0
Exterminator 17 sep. 2018 a las 07:38