routerLink里面的<mat-tab>角度材料

Dee*_*pak 9 angular angular4-router

<a routerLink = "/add"></a><mat-tab  label="Add Identity"></mat-tab>
or
<mat-tab  label="Add Identity"> <a routerLink = "/add"></a></mat-tab>.
Run Code Online (Sandbox Code Playgroud)

我是Angular的新手,尝试使用上面Angular材质组件的路由.但是,当我点击"主页"选项卡时,它不会附加网址.对此有任何帮助.

Nir*_*ane 18

这就是我实施的方式。

应用程序组件.html

<nav mat-tab-nav-bar>
  <a mat-tab-link
  *ngFor="let link of navLinks"
  [routerLink]="link.link"
  routerLinkActive #rla="routerLinkActive"
  [active]="rla.isActive">
 {{link.label}}
</a>
</nav>
<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)

应用组件

export class AppComponent implements OnInit{
  title = 'app';
  navLinks: any[];
  activeLinkIndex = -1;

  constructor(private router: Router) {
    this.navLinks = [
        {
            label: 'TabTest1',
            link: './tabtest1',
            index: 0
        }, {
            label: 'Tab Test2',
            link: './tabtest2',
            index: 1
        }, {
            label: 'Tab Test3',
            link: './tabtest3',
            index: 2
        }, 
    ];
}
ngOnInit(): void {
  this.router.events.subscribe((res) => {
      this.activeLinkIndex = this.navLinks.indexOf(this.navLinks.find(tab => tab.link === '.' + this.router.url));
  });
}
}
Run Code Online (Sandbox Code Playgroud)

路由.module.ts

const routes: Routes = [
  { path: '', redirectTo: '/tabtest1', pathMatch: 'full' },
  { path: 'tabtest1', component:  TestComponent1},
  { path: 'tabtest2', component:  TestComponent2},

];

export const appRouting = RouterModule.forRoot(routes);



@NgModule({
  imports: [
    RouterModule.forRoot(routes),
    CommonModule
  ],
  exports:[
    RouterModule
  ],

  declarations: []
})
export class AppRoutingModule { }
Run Code Online (Sandbox Code Playgroud)

我希望这可以帮助别人


Han*_*h C 15

你可以把它们组合成一个像这样的:

<a mat-tab-link [routerLink]="/add">Add Identity</a>

你还需要确保你正在使用<nav mat-tab-nav-bar>,而不是<mat-tab-group>.

文档:https://material.angular.io/components/tabs/overview#tabs-and-navigation

  • 您的回答使我找到了所需的解决方案,但是您应该提及的是,使用此解决方案时,不应使用&lt;mat-tab-group&gt;,而应使用&lt;nav mat-tab-nav-bar&gt; (2认同)