Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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
Javascript 角度6:如何使用同一路线的多个loadChildren?_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 角度6:如何使用同一路线的多个loadChildren?

Javascript 角度6:如何使用同一路线的多个loadChildren?,javascript,angular,typescript,Javascript,Angular,Typescript,我有点像: const routes: Routes = [ { path: ':path', component: SiteRoot, children: [ { path: '', loadChildren: '../modules/maple/template.module#TemplateModule' } ] } ]; 我希望使用这个:路径url来动态匹配多个模块。每个模块都有自己的内部路由 我有什么办法可以做到这一点吗 我尝试使用ResolveC

我有点像:

const routes: Routes = [
  {
    path: ':path', component: SiteRoot, children: [
      { path: '', loadChildren: '../modules/maple/template.module#TemplateModule' }
    ]
  }
];
我希望使用这个:路径url来动态匹配多个模块。每个模块都有自己的内部路由

我有什么办法可以做到这一点吗

我尝试使用ResolveComponentFactory查看ViewContainerRef,但它不适用于仅模块组件。事件,无法应用路由

编辑,以使一切清晰:

我试图实现的是在同一路径上显示不同的模块。例如,用户可以在“主”路径看到用户仪表板,管理员也可以在“主”路径看到管理员仪表板


此功能由业务逻辑定义,因此,我无法将管理仪表板更改为另一个url,我认为您试图错误地创建路由模块。无论如何,你应该写下你为什么需要这个。我会尽力回答的。每个模块都应该有自己的路径,所以路由模块应该是严格的、静态的。若你们为了安全而尝试使用它,那个么使用防护装置并从菜单组件中隐藏该项

如果您需要这样的URL:“/username1/profile”、“/username2/profile”,您可以简单地使用类似您的代码,或者使用延迟加载。为父模块创建路由文件:

{ path: ':username', loadChildren: '../users/user.module#UserModule' }
然后为子模块创建路由文件:

{ path: '', loadChildren: 'UserComponent', children: [
  { path: '', redirectTo: 'profile' },
  { path: 'profile', component: ProfileComponent}
 ]
}
根据您的案例更新:

根据您的情况,您可以更改HTML文件。例如,如果您的代码为:

 <div>
   <router-outlet></router-outlet>
 </div> 

您可以通过以下方式进行更改:

 <div *ngIf="isLoggedIn | async">
   <admin-panel></admin-panel>
 </div>
 <div *ngIf="(!isLoggedIn | async)">
   <router-outlet></router-outlet>
 </div>


Hi,我想实现的是在同一路径上显示不同的模块。例如,用户可以在“主”路径看到用户仪表板,管理员也可以在“主”路径看到管理员仪表板。此功能由业务逻辑定义,因此,我无法将管理员仪表板更改为另一个urlHi,我已更新答案:)感谢您的回复。但是嵌套的路由组件。像“home/page1”一样,“home/page2”不能相应地加载。在我的上一个示例中,我讨论的是一条路由上的两个组件。若管理面板有自己的路由,它可以存储在标准路由器文件,它不会有任何问题,因为在这种情况下,我认为路由将是不同的。如果您不理解,请告诉:)