Проблема предварительной загрузки для маршрутов forChild - PullRequest
0 голосов
/ 04 июня 2019

Мое приложение немного большого размера. Он содержит много функциональных модулей, и большинство из них загружаются лениво. Я хочу предварительно загрузить лениво загруженный модуль, который включен в маршруты forChild .

Для этого я сослался на документацию Angular и проследил за их действиями. Я предоставил услугу пользовательской стратегии предварительной загрузки, упомянутую ниже.

Это мой файл стратегии предварительной загрузки:

@Injectable()
export class CustomPreloadingWithDelayStrategy implements PreloadingStrategy {
  preload(route: Route, load: () => Observable<any>): Observable<any> {
    if (route.data && route.data['preload']) {
      return load();
    } else {
      return Observable.of(null);
    }
  }
} 

файл приложения-маршрутизации,

const routes: Routes =
  [
    XXX,
{
      path: '',
      data: {
        base: true
      },
      component: MyComp,
      children: [
        {
          path: 'page1/:id',
          loadChildren: 'XXXXXXX'
        },
        {
          path: 'page2',
          loadChildren: 'XXXXXXXX'
        },        
        {
          path: 'page3',
          loadChildren: 'app/feature-modules/folder1/my-folder1-module#Folder1Module'
        }];

@NgModule({
  imports: [RouterModule.forRoot(routes, {useHash: true,  preloadingStrategy: CustomPreloadingWithDelayStrategy})],
  exports: [RouterModule],
  entryComponents: [  ]
})
export class AppRoutingModule {}

Файл маршрутизации My Folder1Module:

const routes: Routes = [{
  path: 'sub-page1/:data1/:data2',
  loadChildren: 'app/feature-modules/sub-pages/pages/sub-page1.module#SubPage1Module'
}, {
  path: 'sub-page2/:data1',
  loadChildren: 'app/feature-modules/sub-pages/pages/sub-page2.module#SubPage2Module',
  data: {preload: true}
}];


@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class Folder1RoutingModule {
}

Поэтому, когда я открываю этот маршрут, / page3 / sub-page1 / data1 / data2 , SubPage2Module должен быть предварительно загружен. Но этого не происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...