I'm trying to activate tab programmatically(not default active) through ngbTabset.select() but it's not working.
<ngb-tabset #ctdTabset="ngbTabset">
<ngb-tab id="tab1">
<ng-template ngbTabTitle>
<div (click)="loadView('tab1')">
<span>Tab 1</span>
</div>
</ng-template>
<ng-template ngbTabContent>
// tab 1 content here
</ng-template>
</ngb-tab>
<ngb-tab id="tab2">
<ng-template ngbTabTitle>
<div (click)="loadView('tab2')">
<span>Tab 2</span>
</div>
</ng-template>
<ng-template ngbTabContent>
// tab 2 content here
</ng-template>
</ngb-tab>
</ngb-tabset>
// component.ts
export class DashboardComponent implements OnInit {
@ViewChild('ctdTabset') ctdTabset;
ngOnInit() {
this.switchNgBTab('tab2');
}
switchNgBTab(id: string) {
this.ctdTabset.select(id);
}
}
It's not updating tab2, may be i did some wrong thing. please, could anyone help me. Your kindness will be appreciated. Thanks.
Use ngAfterViewInit. call switchNgBTab()
from ngAfterViewInit instead of ngOnInit()
import {Component, ViewChild} from '@angular/core';
@Component({
selector: 'ngbd-tabset-basic',
templateUrl: './tabset-basic.html'
})
export class NgbdTabsetBasic {
@ViewChild('ctdTabset') ctdTabset;
ngOnInit() {}
ngAfterViewInit() {
this.switchNgBTab('tab2');
}
switchNgBTab(id: string) {
this.ctdTabset.select(id);
}
}
The stackBlitz link : https://stackblitz.com/edit/angular-reywga-fgshaj?file=app%2Ftabset-basic.html