Угловой маршрут по умолчанию всегда предварительно загружен

#angular #lazy-loading

Вопрос:

У меня есть два маршрута :

  • домой [ » ]
  • о [ «о» ]

Когда я захожу в /о непосредственно в своем браузере, я замечаю 2 вещи :

  • мой домашний модуль предварительно загружен (в то время как я запросил /о чем)
  • URL — адрес переписывается следующим образом : /о компании -gt; / -gt;gt; /о компании

приложение-маршрутизация.модуль.t

 import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router';  const routes: Routes = [  { path: '', loadChildren: () =gt; import('./routes/home/home.module').then(m =gt; m.RoutesHomeModule) },  { path: 'about', loadChildren: () =gt; import('./routes/about/about.module').then(m =gt; m.RoutesAboutModule) },  { path: '**', redirectTo: '', pathMatch: 'full' } ];  @NgModule({  imports: [ RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' }) ],  exports: [ RouterModule ] }) export class AppRoutingModule { }  

app.component.ts

 import { Component, OnInit } from '@angular/core'; import { NavigationStart, Router } from '@angular/router';  @Component({  selector: 'app-root',  templateUrl: './app.component.html',  styleUrls: ['./app.component.less'], }) export class AppComponent implements OnInit {   constructor(  private router: Router,  ) { }   ngOnInit(): void {  this.router.events.subscribe(event =gt; {  if (event instanceof NavigationStart) {  // outputs "/about" but NEVER "/"  console.log(event.url);  }  });  }  }  

Угловой : 13.0.2
Chrome : 96.0.4664.55
ОС : macOS 12.0.1

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

1. С какой проблемой вы столкнулись?

2. Я допустил ошибку при вводе своего примера, поведение, которое я описал, такое же, как и без «данных: { предварительная загрузка: истина }» в моем домашнем маршруте

Ответ №1:

Чтобы пропустить предварительную загрузку домашнего модуля, вы можете обновить массив маршрутов следующим образом.

 const routes: Routes = [  { path: 'home', loadChildren: () =gt; import('./routes/home/home.module').then(m =gt; m.RoutesHomeModule)},  { path: 'about', loadChildren: () =gt; import('./routes/about/about.module').then(m =gt; m.RoutesAboutModule) },  { path: '**', redirectTo: '', pathMatch: 'full' } ];  

Это может ограничить предварительную загрузку.

Вы можете указать как path: 'home' вместо path: '' .

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

1. Какие изменения вы внесли ?

2. Обновил свой ответ @Ziad

3. Домашний модуль больше не предустановлен, но у меня все еще есть перезапись URL : /about -gt; / -gt;gt; /о

4. Итак, когда вы даете /about , это перенаправление на»/»?

5. Да, затем все возвращается к /о