延迟加载是否需要包含路由器插座的几乎空的组件?

时间:2017-12-07 20:59:42

标签: angular

我希望实现延迟加载,但是用户组件当前包含一个显示所有用户的网格,并且没有< router-outlet>

考虑一个app文件夹,例如:

src
-- app
----user
------user.component.html
------user.component.ts
------userdetail
--------userdetail.component.html
--------userdetail.component.ts

以下是路线:

{ path: 'user', component: UserComponent },
{ path: 'user/:id', component: UserDetailComponent },

当我将结构切换到以下内容时:

src
-- app
----user
------user-routing.module.ts (new)
------user.component.html
------user.component.ts
------user.module.ts (new)
------userdetail
--------userdetail.component.html
--------userdetail.component.ts

新路线:

{ path: 'user', loadChildren: 'app/user/user.module#UserModule'},

用户组件延迟加载,但我无法导航到userdetail,因此我计划将我的用户网格移动到新组件“userlist”并且只有< router-outlet>在'用户'组件中。

是否真的有必要为此路由器插座提供一个几乎为空的组件“用户”?我的目标是不仅延迟加载用户网格组件,还加载用户详细信息组件。

这是我开始的一个插件,但尚未完成 - https://plnkr.co/edit/m5gYG40wySngiiNpIY7W?p=preview

1 个答案:

答案 0 :(得分:0)

我相信这是关于你定义的路线。您可以将UserDetailComponent定义为以下子项之一:

export const ROUTES: Routes = [
  {
    path: '',
    component: UserComponent,
    children: [
      {
        path: ':id',
        component: UserDetailComponent,
      }
    ]
  }
];

在您定义{ path: 'user', loadChildren: 'app/user/user.module#UserModule'}, 时,您可以将''用于您的UserComponent