1

我有一个角度项目,我想在其中创建某种导航菜单。这个想法是应用程序的所有链接都放在顶级 NavigationComponent 中,其他路由是它的子节点并加载到它的路由器出口中。应用程序路线看起来像这样:

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,但是当我导航到尚未加载的子模块的某些路由时,我无法在shouldReuseRoute()方法中获取未来的路由 url。

例如,如果我仅导航到未来路线的'/module1/someRouteOfModule1'in ,并且在数组中也不会有路线的其他部分,并且我无法正确保存该页面。routeConfig.pathActivatedRouteSnapshot'module1'pathFromRoot

但是,在那之后,应用程序导航到该模块的其他路由,可以从 pathFromRoute 数组接收整个路由,并且一切正常。

有人遇到过这个问题吗?可能有办法预加载延迟加载模块路由吗?

4

1 回答 1

0

我在延迟加载时遇到了类似的问题,并通过为每条路线设置密钥来解决这个问题。

const appRoutes: Routes = [

       {path: "dashboard", loadChildren: "./dashboard/dashboard.module#DashboardModule", data: { key: "dashboard" }},
,

];
于 2017-07-03T01:17:41.303 回答