如何在mat-tab

时间:2018-10-24 00:51:43

标签: angular

我懒于从app-routing.module.ts加载功能模块,如Routing.module.ts所示。特色路由模块中的默认路由会加载包含3个子路由的LccpTrackerComponent。 LccpTrackerComponent的模板使用Angular Material选项卡组件。我正在尝试在mat-tab标题中添加routerLink指令以路由到相应的子组件,但是该路由不会触发。有谁知道如何使这项工作?谢谢。

模板

<article>
  <section>
    <mat-tab-group>
      <mat-tab label="Consults"><a routerLink="consults" /></mat-tab>
      <mat-tab label="Screening"><a routerLink="screening" /></mat-tab>
      <mat-tab label="Noduled"><a routerLink="noduled" /></mat-tab>
    </mat-tab-group>
  </section>
  <router-outlet></router-outlet>
</article>

Routing.module.ts

const routes: Routes = [{
  path: '',
  component: LccpTrackerComponent,
  children: [{
      path: 'consults',
      component: ConsultComponent,
      pathMatch: 'full',
      resolve: {
        consultSummary: LccpResolver
      }
    },
    {
      path: 'screening',
      component: ScreeningComponent,
      pathMatch: 'full',
      resolve: {
        enrolledSummary: ScreeningResolver
      }
    },
    {
      path: 'noduled',
      component: NoduledComponent,
      pathMatch: 'full',
      resolve: {
        noduledSummary: NoduledResolver
      }
    }
  ]
}, ];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class LccpRoutingModule {}

2 个答案:

答案 0 :(得分:0)

就我而言,使用<a [routerLink]="['/LinkPath']">很好。

但是我还建议您可以使用页面标签作为路由,因为您已经 定义选择器

like路径:“咨询”->使用<consults></consults>

例如:

<mat-tab-group>
   <mat-tab label="Consults"><consults</consults>></mat-tab>
   <mat-tab label="Screening"><screening></screening></mat-tab>
   <mat-tab label="Noduled"><noduled></noduled></mat-tab>
</mat-tab-group>

此外,如果您担心加载量, 您可以使用[selectIndex]方法(可能与您的材料版本不同) 达到相同的目的。

答案 1 :(得分:-1)

使用docs中的<nav mat-tab-nav-bar>

<nav mat-tab-nav-bar>
 <a mat-tab-link
   *ngFor="let link of navLinks"
   [routerLink]="link.path"
   routerLinkActive #rla="routerLinkActive"
   [active]="rla.isActive">
  {{link.label}}
 </a>
</nav>

<router-outlet></router-outlet>