Модуль вложенного дочернего маршрута не работает с angular 9 - PullRequest
0 голосов
/ 18 апреля 2020

Я определил вложенный маршрут, как показано ниже.

home --
       about --
                test

при нажатии на ссылку host / about , он работает. Но когда я перехожу к host / about / test , он не работает, просто перенаправляя на "/".

. Пожалуйста, найдите код ниже и демонстрацию на stackblitz . и помогите мне с проблемой.

app.module.ts
const appRoutes: any = [
  { path: 'about', pathMatch: 'full', loadChildren: './about/about.module#AboutModule' },
];

@NgModule({
  imports:      [ BrowserModule, FormsModule, RouterModule.forRoot(
      appRoutes ) ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { 


}
app.component.html

<a href="/about">Go to  /about</a><br>

<a href="about/test">Go to  /about/test</a>

<router-outlet></router-outlet>

about.module.ts
const appRoutes: Routes = [
  { path: '', pathMatch: 'full', component: AboutComponent },
  { path: 'test', pathMatch: 'full', loadChildren: './test/test.module#TestModule' },
];

@NgModule({
  declarations: [
    AboutComponent
  ],
  imports: [
    CommonModule,
    RouterModule.forChild(appRoutes)
  ],
  providers: []
})

------------
test.module.ts

const appRoutes: Routes = [
  { path: '', pathMatch: 'full', component: TestComponent }
];

@NgModule({
  declarations: [
    TestComponent
  ],
  imports: [
    CommonModule,
    RouterModule.forChild(appRoutes)
  ],
  providers: []
})

1 Ответ

1 голос
/ 18 апреля 2020

Я просмотрел вашу демонстрацию в stackblitz и обнаружил две проблемы:

  • вы не должны использовать pathMatch: 'full' для путей с конфигурацией loadChildren.

app.module.ts

{ path: 'about', pathMatch: 'full',  loadChildren: './about/about.module#AboutModule' 
                 ^^^^^^^^^^^^^^^^^
                   remove this
  • обратите внимание на орфографию

test.module.ts

export class TesttModule {
                ^^
              doubled 't'

Разветвленный стек-блиц

...