首页 文章

Angular中具有CanActivate防护的多个通配符路由

提问于
浏览
0

我想在我的Angular应用程序中显示带有自定义slug的页面,并设法通过添加带有CanActivate防护的通配符路径来检查当前浏览器路径是否是与CMS中的页面关联的slug:

{
  path: '**',
  loadChildren: './modules/content-page/content-page.module#ContentPageModule',
  canActivate: [IsContentPage]
}

如果找到该页面,该应用程序将加载ContentPageModule但现在我希望该应用程序在找不到该页面时显示404页面 . 优选地,URL将保持不变,因此我不想从IsContentPage保护中重定向 . 添加另一个没有防护的通配符路由不起作用:

{
  path: '**',
  loadChildren: './modules/not-found/not-found.module#NotFoundModule'
}

声明这两个路由后,应用程序只会在IsContentPage返回false后显示空白页面 . 如果在ContentPageModule路由之前声明了NotFoundModule路由,则始终触发该路由 .

我正在使用Angular Router 5.2版 .

有人可以帮助我吗?我该如何解决这个问题?

1 回答

  • 0

    1)延迟加载和通配符选项存在错误 . Check this answer:

    2)定义另一个通配符是没有意义的 . 做那个Angular不会知道应该使用哪种情况

相关问题