延迟加载路由未打开子模块组件

时间:2018-09-12 21:22:39

标签: angular

我有一个angular 6应用程序,其中正在使用延迟加载。

延迟加载效果很好。

我的问题是我想根据路由在子模块中加载不同的组件。

这是我的App.Routes

export const routes: Routes = [
    { path: '', redirectTo: 'home', pathMatch: 'full' },        
    { path: 'login', component: HomeComponent },
    { path: 'manage/:id', loadChildren: './admin/admin.module#AdminModule' },
    { path: 'organisation-list', loadChildren: './admin/admin.module#AdminModule' }        
];

因此,对于网址http:app.xxx.com/organisation-list,它会使用路由加载管理模块

const routes: Routes = [
{ path: 'manage/:id', component: FlowListComponent },
{ path: 'organisation-list', component: PowerComponent },
{ path: '', component: FlowListComponent }

];

现在,我期望组件PowerComponent被加载。这不会发生,而是加载默认的FlowListComponent吗?

我尝试过各种方法,但是我认为我对这种方法的基本理解是错误的。

2 个答案:

答案 0 :(得分:0)

我认为您可以这样做 管理员路线

const routes: Routes = [
  { path: '', component: PowerComponent },
  { path: 'manage/:id', component: FlowListComponent },
  { path: 'organisation-list', component: PowerComponent },
  { path: 'flow-list', component: FlowListComponent }

默认路径是'''',我刚刚在一个项目中检查过它。

答案 1 :(得分:0)

正如@abetteroliver所建议的那样,我需要更改自己的网址,所以现在有了

export const routes: Routes = [
{ path: '', redirectTo: 'home', pathMatch: 'full' },        
{ path: 'login', component: HomeComponent },
{ path: 'manage/:id', loadChildren: './admin/admin.module#AdminModule' },
{ path: 'admin', loadChildren: './admin/admin.module#AdminModule' }        

];

和...

const routes: Routes = [
{ path: 'manage/:id', component: FlowListComponent },
{ path: 'organisation-list', component: PowerComponent },
{ path: 'campaign-detail/:id', component: CampaignDetailComponent },]

加载组织列表组件时,我使用网址

app.xxx.com/admin/organisation-list