在Prime NG的tabview文档的可关闭部分中,我看到当我删除最后一个选项卡时,它会转到第一个选项卡.我的问题是:我如何才能让它转到左侧的选项卡而不是第一个选项卡? (我猜这是一种的值为0和-1的情况).当更改TabIndex的值时,有没有办法使选项卡位于关闭的选项卡的左侧,而不是第一个选项卡? 示例行为应该如下所示:设有选项卡1、2和3.当我关闭编号3时,我希望显示编号2).先谢谢你.
Example from geeks for geeks个 我想像这样做,但我不知道它实际上是如何工作的?
以下是我的一些源代码:
<div style="float: left;" [style.width] ="this.splitWindows ? '50%' : '100%'">
<p-tabView (onClose)="handleCloseLeft($event)" [scrollable]="isScrollable" (click)="consolelog(activeTabIndex)" (onChange)="handleOnChange($event)" [(activeIndex)]="activeTabIndex"] >
<p-tabPanel *ngFor="let item of leftTabItems; let i = index" [selected]="i == activeTabIndex" [closable] = "item.closable">
<ng-template pTemplate="header">
<div #tabPanelRightClick>
{{item.header}}
</div>
<p-contextMenu appendTo="body" [target]="tabPanelRightClick" [model]="items"></p-contextMenu>
</ng-template>
<ng-content *ngComponentOutlet='item.component.component; inputs:item.params'/>
</p-tabPanel>
</p-tabView>
</div>
活动选项卡索引的值为,如0、1、2、3、4.而我预计的行为是,当第四个activeTabIndex关闭时,第三个activeTabIndex出现在屏幕上,但它似乎转到了我的主页所在的第0个索引.(这是无论它是什么指数.它的工作原理如下.)
HandleCloseLeft的代码如下:
handleCloseLeft(event): void {
this.tabService.removeTabItem(event.index);
console.log("event index'i : " + event.index);
console.log(this.leftTabItems.length);
// this.activeTabIndex = 0;
if (event.index < this.leftTabItems.length) {
this.activeTabIndex = event.index;
} else {
this.activeTabIndex = this.leftTabItems.length - 1;
}
this.leftTabItems.splice(event.index, 1);
// if(event.index > this.activeIndex) {
// this.activeIndex = event.index - 1;
// }
}