使用Angular 9直接访问延迟加载的组件时,Webbrowser挂起

时间:2020-10-13 15:36:49

标签: angular angular-routing angular9 ivy angular-lazyloading

因此,我的app-routing.module.ts中包含以下内容:

export const appRoutes: Routes = [

// Front
{path: '', component: FrontComponent},
{path: 'login', component: SigninComponent, data: {activeTab: SigninAction.Login}},
{path: 'register', component: SigninComponent, data: {activeTab: SigninAction.Register}},

// Lazy loaded features
{path: 'user', canActivate: [LoginGuard], loadChildren: () => import('../user  /user.module').then(m => m.UserModule)},
{path: 'announcement', loadChildren: () => import('../announcement/announcement.module').then(m => m.AnnouncementModule) },
];

@NgModule({
  imports: [
    CommonModule,
    RouterModule.forRoot(appRoutes, {onSameUrlNavigation: 'reload'})
  ],
  exports: [RouterModule],
})
export class AppRoutingModule { }

到用户的路由正常。但是使用公告路由,浏览器会挂起并且无法恢复,因此我需要重新启动。

公告功能中的路由模块如下所示。

export const routes: Routes = [

//// applications
  {path: 'apply', component: ApplyComponent},

//// invitations
{
  path: 'find',
  component: FindInvitationComponent,
  canActivate: [ViewInvitationsGuard],
},
{path: '', component: DummyTestComponent}

];

@NgModule({
  imports: [
    CommonModule,
    RouterModule.forChild(routes)
  ],
  declarations: [],
  exports: [RouterModule]   
})

导出类AnnouncementRoutingModule { }

我放入了一个虚拟组件,以便在开发中更快地加载。

在不使用Ivy的情况下(如在我的生产版本中一样),该相同的配置可以完美地工作,没有触及到防护罩,但是现在,请求甚至根本不会触及防护罩。即使在删除防护后,我也没有运气(请注意,我直接访问路由,因此是通过直接输入浏览器的URL)。

只是不知道为什么浏览器会在没有任何控制台信息或网络请求的情况下进入某种循环。

有什么想法吗?非常感谢!

0 个答案:

没有答案