Angular 角度-删除延迟加载路由模块中的带有服务的路由

Angular 角度-删除延迟加载路由模块中的带有服务的路由,angular,lazy-loading,angular2-routing,angular-services,Angular,Lazy Loading,Angular2 Routing,Angular Services,我正在处理angular 2项目(angular版本2.2.3),其中包含延迟加载的路由。现在的问题是,我需要使用服务动态删除一些路由问题是我不确定如何使用类外的服务(方法1)。如果我将服务移动到构造函数内,我不确定如何修改路由,因为我只得到父路由,而不是延迟加载的路由(方法2)类似于下面注释的代码: let crisisCenterRoutes: Routes = [ { path: 'crisis-center', component: CrisisCenterCompo

我正在处理angular 2项目(angular版本2.2.3),其中包含延迟加载的路由。现在的问题是,我需要使用服务动态删除一些路由
问题是我不确定如何使用类外的服务(方法1)。
如果我将服务移动到构造函数内,我不确定如何修改路由,因为我只得到父路由,而不是延迟加载的路由(方法2)
类似于下面注释的代码:

let crisisCenterRoutes: Routes = [
  {
    path: 'crisis-center',
    component: CrisisCenterComponent,
    children: [
      {
        path: '',
        component: CrisisListComponent
      }
    ]
  }
];

//approach 1: no constructor to inject serviceXX to
//crisisCenterRoutes = serviceXX.process(crisisCenterRoutes);

@NgModule({
  imports: [
    RouterModule.forChild(crisisCenterRoutes)
  ],
  exports: [
    RouterModule
  ]
})
export class CrisisCenterRoutingModule {
  constructor(serv: ServiceXX, router: Router) {
    let modifiedRoutes = serv.process(crisisCenterRoutes);  
    let newRoutes = router.config;
    //approach 2: not sure how to combine newRoutes and modifiedRoutes from here since newRoutes don't contain the lazy loaded ones
    newRoutes = ??? //combine the newRoutes and modifiedRoutes
    router.resetconfig(newRoutes);
  }
}

有什么建议吗?谢谢你

我猜您需要根据用户权限/组删除这些路由。解决这一问题的更好方法是使用接口,即canActivate,你是说使用guard?guard工作正常,但在这种情况下我需要将其删除,因为我使用它来生成菜单和其他内容。除非您在某个地方手动指定它们,否则您无法事先知道延迟加载的路由。数据还不知道,因为它还没有加载yet我需要删除的是CrisComponentRouter,所以在本例中我有路由。基本上我会在它加载之前删除它们