Angular 角护板

Angular 角护板,angular,angular-guards,Angular,Angular Guards,我试图查找有关生命周期应用程序初始化的任何信息。 守卫的种类很少。我对以下类型感兴趣: 激活 罐头 激活儿童 假设我们有以下路由配置: { path: '', component: ParentA, canActivate: [CanActivateGuard], children: [ { path: 'childA', component: ChildA, canActivateChild:

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

  • 激活
  • 罐头
  • 激活儿童
假设我们有以下路由配置:

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

{

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

现在,当尝试打开父/子A时。哪个卫兵会先被处决? 在CanActivateChildGuard检查之前是否会呈现父级组件?

顺序应为:

  • 罐头
  • 防弹衣
  • 金丝雀守卫
  • 通过在初始化期间启用路由器跟踪,您可以在控制台中看到更多信息,如下所示:

    RouterModule.forRoot(routes, { enableTracing: false })
    

    ParentA组件是否会在CanActivateChildGuard检查之前呈现?这是一个有趣的问题,您可以通过将日志添加到父组件和子组件的构造函数中来轻松验证它。按照逻辑,我肯定会说是的:父路由应该加载,然后子路由应该被评估,然后加载。顺便说一句,我可能错了:这可能是在加载任何内容之前评估所有父级和子级路由。这就是我建议启用跟踪和签出日志的原因。