角延迟加载模块-配置routerActiveClass并选择默认的登陆组件

时间:2020-03-06 10:00:30

标签: angular module lazy-loading routerlinkactive

下面的配置中有一些我不完全理解的问题。

要求

  • 在我的主菜单中,我想单击设置链接,并为routerLinkActive添加活动类=这有效
  • 导航到设置页面时,自动显示 settings.html和路由器出口中的account child模块

问题

  • 点击设置会激活routerLinkActiveClass,这很棒
  • 但是,在进入设置页面时,帐户子模块 自动加载(部分是我想要的...)
  • 子模块会自动加载,但我希望URL更新为设置/帐户
  • 尽管子模块会自动加载(不确定如何或为什么加载 就是这样...)设置组件中的所有html都完全是 被忽略并且不可见

我有一个菜单组件,通过整个应用程序都可以看到它,我有一个指向设置页面的链接。激活此页面后,可以很好地应用活动类。

Menu.html

<a[routerLink]="['/settings']" routerLinkActive="active"> Settings </a>

router.module

{
  path: 'settings',
  loadChildren: () => import('../app/settings/settings.module').then(mod => mod.SettingsModule),
},

settings.module

const routes: Routes = [
  {
    path: '',
    component: SettingsComponent,
    children: [
      {
        path: 'account',
        loadChildren: () => import('account.module').then(mod => mod.AccountModule),
      },
    ],
  }
]

settings.html

在我的settings.html中,我有两个子菜单链接和一个路由器插座,单击链接后即可显示模块

<a [routerLink]="['/settings/account']" routerLinkActive="active">
<a [routerLink]="['/settings/test']" routerLinkActive="active">
<router-outlet></router-outlet>

注释 :最初,我考虑仅从主菜单链接链接到/settings/account。可以使用正确的着陆网址的预期结果,并显示设置html和帐户html。这里的问题是,如果我要在settings.html中单击settings/test,则会在主菜单上删除routerLinkActive类。

0 个答案:

没有答案