繁体   English   中英

从当前模块获取所有路线 - Angular 2

[英]Getting all routes from current module - Angular 2

嗨,我在我的示例中使用延迟加载。

export const appRoutes: Routes = [

    { path: 'comp1', loadChildren: 'app/components/comp1/comp1.module#comp1Module' },
   { path: 'comp2', loadChildren: 'app/components/comp2/comp2.module#comp2Module' },
. . .

]

comp1Module 具有以下子路线 Routes

export const comp1Routes: Routes = [
   { path: 'comp1/default', component: DefaultComponent },
 ];

在路由时,我需要从模块中获取所有路由。

例如:我想从模块comp1 中获取所有路由

您可以通过注入 Router 并拉取配置来使用 router.config。

constructor(private router: Router){
  console.log(this.router.config);
}

您需要将Router注入到组件/服务中。

例如:

constructor(private router: Router) { }

ngOnInit() {
  console.log(this.router.config);
}

我使用这种方法:

将延迟加载的模块路由定义为根组件的子组件:

const routes: Routes = [
    { path: '', component: LazyLoadedRootComponent,
        children: [
            { path: 'child1', component: Child1Component },
            { path: 'child2', component: Child2Component },
        ]
    }
];

@NgModule({
  declarations: [LazyLoadedRootComponent, Child1Component, Child2Component],
  imports: [
    CommonModule,
    RouterModule.forChild(routes)
  ]
})
export class LazyLoadedModule { }

然后从你的根模块组件你可以得到它的子路由,如下所示:

export class LazyLoadedRootComponent implements OnInit {

    constructor(private route: ActivatedRoute) {
    }

    ngOnInit(): void {
        console.log(this.route.routeConfig.children);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM