1

我试图找到有关生命周期应用程序初始化的任何信息。守卫的种类很少。我对以下类型感兴趣:

  • 可以激活
  • 可以加载
  • 可以激活孩子

假设我们有以下路由配置:

  {
    path: '',
    component: ParentA,
    canActivate: [CanActivateGuard],
    children: [
      {
        path: 'childA',
        component: ChildA,
        canActivateChild: [CanActiveChildGuard]
      },
  }

和主路由:

{

      {
        path: 'parent',
        loadChildren: '@app/modules/parent.module#ParentModule',
        canLoad: [CanLoad]
      },
}

现在,当试图打开parent/childA. 哪个守卫会先被处决?会ParentA Component在 CanActivateChildGuard 检查之前呈现吗?

4

1 回答 1

1

顺序应该是:

  1. 可以加载
  2. CanActivateGuard
  3. CanActiveChildGuard

通过在初始化期间启用路由器的跟踪,您可以在控制台中查看更多信息,如下所示:

RouterModule.forRoot(routes, { enableTracing: false })
于 2019-11-23T11:03:29.110 回答