我正在尝试通过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,可能是我做错了什么。请,有人可以帮我吗。您的好意将不胜感激。谢谢。
答案 0 :(得分:1)
使用 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链接:https://stackblitz.com/edit/angular-reywga-s9hh6v?file=app/tabset-basic.ts