在Angular 6中,可以使用延迟加载模块的方式来处理相同路径但不同模块的情况。下面是一个示例解决方法:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{ path: 'module1', loadChildren: './module1/module1.module#Module1Module' },
{ path: 'module2', loadChildren: './module2/module2.module#Module2Module' },
// 添加其他需要延迟加载的模块
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
在主模块的路由配置中,使用loadChildren
属性来指定延迟加载的模块路径和模块名称。例如,'./module1/module1.module#Module1Module'
表示路径为'./module1/module1.module'
,模块名称为Module1Module
。
在主模块中,使用forRoot
方法来配置路由模块。
在每个延迟加载的模块中,创建一个独立的路由模块(例如module1-routing.module.ts)来配置该模块的路由。
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { Module1Component } from './module1.component';
const routes: Routes = [
{ path: '', component: Module1Component }
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class Module1RoutingModule { }
在延迟加载的模块中,使用forChild
方法来配置模块的路由。
在需要延迟加载的组件中,使用routerLink
指令来导航到相应的路径。
Module 1
Module 2
通过以上步骤,你就可以实现在Angular 6中对于相同路径和不同模块的延迟加载。
下一篇:Angular 6多表列过滤