У меня есть угловой проект, в котором я хочу создать какое-то меню навигации. Идея состоит в том, что все ссылки приложения размещаются в NavigationComponent верхнего уровня, а другие маршруты являются его дочерними элементами и загружаются в его router-outlet. Маршруты приложений стали выглядеть так:
const appRoutes: Routes = [
{ path: 'login', component: LoginComponent },
{
path: '',
component: NavigationComponent,
children: [
{ path: 'somepage', component: SomePageComponent },
{ path: 'module1', loadChildren: 'app/modules/module1.module#Module1Module' },
{ path: 'module2', loadChildren: 'app/modules/module2.module#Module2Module' },
]
},
// otherwise redirect to 404
{ path: '**', component: PageNotFoundComponent }
];
Теперь я хочу добавить пользовательский RouterReuseStrategy
, но когда я перехожу к некоторому маршруту дочерних модулей, которые еще не загружены, я не могу получить URL-адрес будущего маршрута в методе shouldReuseRoute()
.
Например, если я перейду к '/module1/someRouteOfModule1'
в routeConfig.path
будущего маршрута, ActivatedRouteSnapshot
будет только 'module1'
, а в массиве pathFromRoot
не будет другой части маршрута, и я не могу правильно сохранить эту страницу.
Но затем, после этого, приложение переходит к другому маршруту этого модуля, весь маршрут может быть получен из массива pathFromRoute, и все работает нормально.
Кто-нибудь сталкивался с этой проблемой? Может быть, есть способ предварительно загрузить маршруты отложенной загрузки модулей?