В Angular динамическое имя маршрута не работает при navigateByUrl (), необходимо обновить страницу

#angular #angular-routing #angular-lazyloading

#angular #angular-routing #angular-lazyloading

Вопрос:

Это мой основной файл маршрута

  let baseRoute= Config.loginFirstName==null ? 'abcd':Config.loginFirstName;
 
const routes: Routes = [
  {path: '', redirectTo: '/' baseRoute '/' Config.role '/dashboard/home', pathMatch: 'full' },
  {path:'help', component:HelpComponent},
  {path:'register', component:RegisterComponent},
  {path:'forget-password',component:ForgetPasswordComponent},
  { path: baseRoute, loadChildren: () => import('./pages/pages.module').then(m => m.PagesModule) },
  {path:'**', component:NotfoundComponent}
];
  

Это маршрутизация page.module

 const routes: Routes = [{ path: '', component: PagesComponent },
{
  path: 'customer',
  loadChildren: () => import('./customer/customer.module').then(m => m.CustomerModule)
},
{
  path: 'organizer',
  loadChildren: () => import('./organizer/organizer.module').then(m => m.OrganizerModule),
  canActivate: [AuthGuardOrganizer]
},
  

Здесь возникает проблема, когда кто-то входит в систему как поставщик с именем ‘xyz’, поэтому он перенаправляется на маршрут ‘xyz / vendor’ и работает в первый раз, но при входе в систему с именем ‘abc’ в качестве клиента, тогда его маршрут будет abc / customer, тогда его перенаправление не работает.

Спасибо

Ответ №1:

Наконец, я могу решить эту проблему, предварительно загрузив Strategy

 const config: ExtraOptions = {
  useHash: true,
  preloadingStrategy: PreloadAllModules // when I added this line its working
};

@NgModule({
  imports: [RouterModule.forRoot(routes,config)],
  exports: [RouterModule]
})
  

Комментарии:

1. Вы делали это в модуле с отложенной загрузкой?

2. Нет, если вы можете, пожалуйста, опубликуйте то же самое