我懒于从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 {}
答案 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>