为什么 ngb-tabset 在显示隐藏和显示时重置为第一个选项卡?

Why ngb-tabset resets to first tab when display is hidden and shown?

我在单个 div 部分下的组件中使用 ngb-tabset。此 div 标记根据条件为真显示。当条件为假时,显示不同的部分。

<div *ngIf="showAllTabs">
  <ngb-tabset>
    <ngb-tab id="heading-1">
      <ng-template ngbTabTitle>
         <div>HEADING 1</div>
      </ng-template>
   </ngb-tab>
 
   <ngb-tab id="heading-2">
      <ng-template ngbTabTitle>
         <div>HEADING 2</div>
      </ng-template>
   </ngb-tab>
  </ngb-tabset>
</div>

<div *ngIf="!showAllTabs">
  <!-- Some other work -->
</div>

问题是,例如,如果活动选项卡是“heading-2”,当 division 标签隐藏并再次显示时,活动选项卡设置为第一个选项卡(标题-1) 自动。如何不允许这个?

原因是结构指令“ngIf”。 ngIf 从 DOM 中删除元素,因此,当 ngIf 结果为真时,元素将重新呈现,这会导致默认选项卡可见。这可以通过将选项卡的 id 存储在变量中并在每次呈现 DOM 元素时启用它来对选项卡选择进行编程来解决。