角度路由延迟加载异步

时间:2018-04-05 15:40:00

标签: angular

我的角度应用程序中有一个非常奇怪的错误。如果我去延迟加载路由,我的路由每次重定向我。如果我删除重定向路由,它可以正常工作。

路线: const routes:Routes = [

{
    path       : 'user',
    component  : IndexUserComponent,
    canActivate: [AuthGuard]
},  
{
    path       : 'support',
    component  : IndexSupportComponent,
    loadChildren: ()=>IndexSupportModule 
},
{
    path       : 'admin',
    component  : IndexAdminComponent,
    canActivate: [AuthGuard]
},
{
    path      : '**',
    redirectTo: '/user'
}                                             //works with redirecTo: '/support' 
                                              //and if i delete this line
];

操作系统:win32

anglulr-cli:1.7.3

节点:8.9.4

我已经发现我必须在angluar cli 1.7.x中使用lambda函数来进行延迟加载,因为它有一个bug。使用以下版本它不起作用:

loadChildren: 'app/orders/index.support.module#IndexSupportComponent' 

1 个答案:

答案 0 :(得分:0)

此行不正确。

loadChildren: 'app/orders/index.support.module#IndexSupportComponent'

在Angular中,您不会直接延迟加载组件,您必须延迟加载包含所需组件的模块。它应该是这样的:

loadChildren: 'app/orders/index.support.module#IndexSupportModule'

  

设置延迟加载的功能模块有三个主要步骤:

     
      
  • 创建要素模块。
  •   
  • 创建要素模块的路由模块。
  •   
  • 配置路由。
  •   

官方Angular documentation提供了如何正确执行此操作的一个很好的示例。