How to Set Default Tab in Angular? How to change tab in mat-tab-group using selectedIndex dynamically.

Source code from this tutorial can be found at GitHub.

Previously you saw how to create tabs in Angular using Angular Material. Now let’s see how you can set a default tab.

This is how the app.component.html file looks:

<div class="container">
  <mat-tab-group mat-align-tabs="start">
    <mat-tab label="New Employee" >

    </mat-tab>
    <mat-tab label="All Employees" >

    </mat-tab>
  </mat-tab-group>
</div>

You can use selectedIndex property to set the default tab on the tab group.

<div class="container">
  <mat-tab-group mat-align-tabs="start" [selectedIndex]="0">
    <mat-tab label="New Employee" >

    </mat-tab>
    <mat-tab label="All Employees" >

    </mat-tab>
  </mat-tab-group>
</div>

Setting selectedIndex property as 0 sets the first tab and setting it as 1 sets the second tab.

Let’s create an enum for the Tabs in the app.component.ts.

enum Tabs{
  New_Employees = 0,
  All_Employees = 1
}

Set a variable called tabIndex for the selectedIndex in the mat-tab-group.

<div class="container">
  <mat-tab-group mat-align-tabs="start" [selectedIndex]="tabIndex">
    <mat-tab label="New Employee" >

    </mat-tab>
    <mat-tab label="All Employees" >

    </mat-tab>
  </mat-tab-group>
</div>

Declare the tabIndex variable in app.component.ts and define a method called setTab to change the selected tab.

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
  title = 'material-tabs';

  tabIndex : Tabs = Tabs.New_Employees;

  ngOnInit(){
    this.setTab(Tabs.All_Employees);
  }

  setTab(tab : Tabs){
    this.tabIndex = tab; 
  }
}

enum Tabs{
  New_Employees = 0,
  All_Employees = 1
}

As seen in the above code, on ngOnInit you have called the setTab method to set the default tab to All_Employees.

Save the above changes and refresh the application. You should be able to see the second tab All Employees selected by default.