Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何将子组件设置为路由器出口的默认路由?_Angular_Lazy Loading_Angular Routing - Fatal编程技术网

Angular 如何将子组件设置为路由器出口的默认路由?

Angular 如何将子组件设置为路由器出口的默认路由?,angular,lazy-loading,angular-routing,Angular,Lazy Loading,Angular Routing,我正在使用Lazyloading,我有两个路由器插座。当我想导航到另一个子路由时,就会出现问题。我得到这个错误 TypeError:无法读取未定义的属性“split” 在defaultUrlMatcher上(router.js:566) 在比赛中(router.js:2221) 我的主应用程序路由器模块看起来像 const appRoutes: Routes = [ { path: '', redirectTo: 'web/welcome' , pathMatch: 'full' },

我正在使用
Lazyloading
,我有两个
路由器插座
。当我想导航到另一个子路由时,就会出现问题。我得到这个错误

TypeError:无法读取未定义的属性“split” 在defaultUrlMatcher上(router.js:566) 在比赛中(router.js:2221)

我的主应用程序路由器模块看起来像

const appRoutes: Routes = [
    { path: '', redirectTo: 'web/welcome' , pathMatch: 'full' },
    { path: 'web', redirectTo: 'web/welcome' , pathMatch: 'full' },
    {
        path: 'web',
        loadChildren: 'app/core/website/modules/website.module#WebSiteModule',
        data: { preload: true }
     },
    {
        path: 'dbapp', canActivate: [AuthGuardService],
        loadChildren: 'app/core/database/modules/db.module#DbModule',
        data: { preload: true }
     },
    { path: '**', redirectTo: '/404',  pathMatch: 'full'},
    { path: '**', component: NotFoundComponent, data: { message: 'We Could Not Serve Your Request!'}},
];
对于
dbapp
我有这个路由模块

const dbRoutes: Routes = [
  {
    path: '',
    component: DbHomeComponent,
    data: { preload: true },
    pathMatch: 'full',
    children: [
      { path: '', component: UserDashboardComponent },
      {
        path: 'registry',
        canActivate: [RoleGuardService],
        data: { expectedRole: { roles: ['reg'] } },
        loadChildren:
          'app/core/database/database-cores/registry-core/modules/registry.module#RegistryModule'
        // canActivateChild: [RoleGuardService]
      },
      {
        path: 'embryology',
        canActivate: [RoleGuardService],
        data: { expectedRole: { roles: ['emb'] } },
        loadChildren:
          'app/core/database/database-cores/embryology-core/modules/embryology-routing.module#EmbryologyRoutingModule'
      },
      {
        path: 'nursing',
        canActivate: [RoleGuardService],
        data: { expectedRole: { roles: ['nur'] } },
        loadChildren:
          'app/core/database/database-cores/embryology-core/modules/embryology-routing.module#EmbryologyRoutingModule'
      }
    ]
  },
]; 
我的地图如下所示

路由器地图,带下划线的
组件
路由器出口

所以根据我的配置。路由从
https://www.artngcore.com:4200/web/welcome
认证后,路由更改为
https://www.artngcore.com:4200/dbapp

我设法导航到
UserDashboardComponent
作为默认路由,如果我路由到其他子级,即
routerLink=“/dbapp/registry”


如何将子组件显示为默认路由并导航到其他子路由?

已解决,答案来自

所以我的
dbapp
路由模块应该是这样的

const dbRoutes: Routes = [
  {
    path: '',
    component: DbHomeComponent,
    data: { preload: true },
    children: [
      { path: '', component: UserDashboardComponent },
      {
        path: 'registry',
        canActivate: [RoleGuardService],
        data: { expectedRole: { roles: ['reg'] } },
        loadChildren:
          'app/core/database/database-cores/registry-core/modules/registry.module#RegistryModule'
        // canActivateChild: [RoleGuardService]
      },
      {
        path: 'embryology',
        canActivate: [RoleGuardService],
        data: { expectedRole: { roles: ['emb'] } },
        loadChildren:
          'app/core/database/database-cores/embryology-core/modules/embryology-routing.module#EmbryologyRoutingModule'
      },
      {
        path: 'nursing',
        canActivate: [RoleGuardService],
        data: { expectedRole: { roles: ['nur'] } },
        loadChildren:
          'app/core/database/database-cores/embryology-core/modules/embryology-routing.module#EmbryologyRoutingModule'
      }
    ]
  }
];

我所要做的就是更改路由匹配策略,
pathMatch:“full”
不应包括在内

您是使用了什么自动生成路由器图形,还是手动创建的?@Zze我正在使用