1

我正在运行一个 Angular 4 应用程序。我对应用程序中的路由有特定要求。

我有路由和路由参数等/create/claim/view/claim/:id这些传统的路由方法工作正常。

我需要路由到param页面名称之前给出的页面(例如:仪表板页面)。例如

http://.../dashboard <--- this is working & loads dashboard module.
http://.../:client-name/dashboard <-- I need to know how to load dashboard module, after getting client-name information from database.

请让我知道是否有人遇到过这样的要求。如果需要更多信息,我会提供。

4

1 回答 1

0

我认为您看到的答案是延迟加载和使用警卫。

一个例子

 const APP_ROUTES: Routes = [
  {
    path: 'dashboard',
    loadChildren: 'app/dashboard/dashboard.module#DashboardModule',

 }, {
    path: 'dashboard',
    runGuardsAndResolvers: 'always',
    canActivate: [AuthGuard],
    loadChildren: 'app/home/home.module#HomeModule'
 }, {
   path: 'auth',
   loadChildren: 'app/auth/auth.module#AuthModule'
 }
];

我们的后卫是这样的

 canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): 
  Observable<boolean> | Promise<boolean> | boolean {
    if (this.authservice.isAuthenticated()){
  return true;
 } else {
  this.router.navigate(['auth/signIn'], {});

  }
 }

希望能帮助到你。

于 2017-10-03T14:53:08.763 回答