Angular 8, хочу изменить дочерние маршруты Lazy-Loaded-Module.С app-маршруты работает, но не внутри модуля - PullRequest
0 голосов
/ 25 сентября 2019

У меня так много Stackoverflow и других сайтов, чтобы получить решение моей проблемы в изменении конфигурации маршрутизатора ленивым загруженным модулем (внутри него, а не к нему).Я справился с этим, чтобы он работал для main (app) -routes, сбросив конфигурацию в конструкторе app-routing.Но то же самое в Lazy-модуле не позволяет внутреннему модулю правильно перейти к измененной конфигурации маршрутизации.Я создал Plunker https://stackblitz.com/edit/angular-ymzczk для этого, где вы можете видеть, что приложение-маршрутизация работает, а ленивый модуль - нет.Может ли кто-нибудь посмотреть на код, что я делаю не так?Спасибо.С уважением.

-------------APP_ROUTING------------------------------------------------
export const routes: Routes = [
  { path: '', canActivate: [ ], /*component: AppComponent,*/ children: [
      { path: "OVERWRITE_ABLE_PATH", "redirectTo": "" },
      { path: 'mock', component: MockToBeReplacedComponent,  },
      { path: 'lazy', loadChildren: './lazy-module/lazy-module.module#LazyModuleModule' },
      { path: '', redirectTo: 'mock', pathMatch: 'full' },
    ],
  },
];

...

let AppRoutingJson: Routes = [
  //{ path: '', redirectTo: 'mock', pathMatch: 'full' },
  { path: '', redirectTo: 'lazy', pathMatch: 'full' },
];
appService.prepareRoutes("App", this.router, AppRoutingJson, routes);

...

OUTPUT (console.log, after replacement, does navigate):
[
  {"path":"","canActivate":[],"children[
      {"path":"","redirectTo":"lazy","pathMatch":"full"},
      {"path":"mock"},{"path":"lazy"},
      {"path":"","redirectTo":"mock","pathMatch":"full"}
    ]
  }
]
-----------------------------------------------------------------------
---------------LAZY_MODULE_ROUTING-------------------------------------
export const routes: Routes = [
  { path: '', canActivate: [ ], component: LazyModuleComponent, children: [
      { path: "OVERWRITE_ABLE_PATH", "redirectTo": "" },
      { path: 'dummy', component: DummyToBeReplacedComponent, },
      { path: '', redirectTo: 'dummy', pathMatch: 'full' },
    ],
  },
];

...

let AppRoutingJson: Routes = [
  //{ path: '', component: ReplacerComponent, },
  { path: 'dummy', component: ReplacerComponent, },
];
appService.prepareRoutes("LazyModuleRoutingModule", this.router, AppRoutingJson, routes);

...

OUTPUT (console.log, after replacement, does NOT navigate):
[
  {"path":"","canActivate":[],"children":[
      {"path":"dummy"},
      {"path":"dummy"},
      {"path":"","redirectTo":"dummy","pathMatch":"full"}
    ]
  }
]
...