ngbTabset 未以编程方式更新选项卡

ngbTabset not updating tab programmatically

我正在尝试通过 ngbTabset.select() 以编程方式激活选项卡(不是默认激活),但它不起作用。

<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);
   }
 }

它没有更新 tab2,可能是我做错了什么。拜托,任何人都可以帮助我。您的好意将不胜感激。谢谢。

使用 ngAfterViewInit。从 ngAfterViewInit 调用 switchNgBTab() 而不是 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);
   }
}

stackBlitz link : https://stackblitz.com/edit/angular-reywga-fgshaj?file=app%2Ftabset-basic.html