Angular4:RouterReuseStrategy和延迟加载的模块路由url

时间:2017-03-30 13:55:44

标签: angular angular4

我有一个角度项目,我想创建某种导航菜单。这个想法是应用程序的所有链接都放在顶级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()方法中获取未来的路径网址。

例如,如果我导航到未来路线'/module1/someRouteOfModule1'的{​​{1}}中的routeConfig.path,则仅ActivatedRouteSnapshot'module1'数组中不会有其他路线pathFromRoot路线的一部分,我也无法正确保存该页面。

然后,之后,app导航到该模块的其他路线,可以从pathFromRoute数组接收整个路线,一切正常。

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

1 个答案:

答案 0 :(得分:0)

我在延迟加载方面遇到了类似问题,并通过为每条路径设置密钥来解决此问题。

const appRoutes: Routes = [

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

];