Angular2 轮询器由 bootstrap 协议重置

Angular2 Poller Reset ng-bootstrap accordin

我有一个多维数组连接到等待数据库状态更新的反应轮询器。如果我加载状态 1x,ui 将按预期工作。

问题:当我打开轮询器时,它导致手风琴状态关闭。

代码:

<ngb-accordion #acc="ngbAccordion" [closeOthers]="true">
    <ngb-panel *ngFor="let group of fishGroups | async" title="{{group[0].source.originalname}}">
        <template ngbPanelContent>
            ......
        </template>
    </ngb-panel>
</ngb-accordion>


ngOnInit() {
  console.log('ngOnInit');

  this.fishGroups = this.fisheService.elements
    //ensure not null
    .filter((arr: DTOfish[]) => (arr != null && arr.length > 0))
    // create milti dimensional array

    .map((fishes : DTOfish[]) => {
      let groups: DTOfish[][] = [];
      fishes.forEach((fish: DTOfish) => {
        //note double assignment : if null create
        let group: DTOfish[] = groups[fish.source.id] = groups[fish.source.id] ? groups[fish.source.id] : [];
        group.push(fish);
      });

      //make sparse array dense
      return groups.filter(value => !!value);
    });

  this.fishes = this.fisheService.elements.map((fishes: DTOfish[]) => {
    return fishes.filter((fish: DTOfish) => !fish.model.isFailed)
  });


  this.fisheService.loadAll();

  this._interval = global.setInterval( () => {
    console.log('fishComponent Poller');
    this.fisheService.loadAll();
  }, 2000);

}

问题: 当轮询器 returns 处于更新状态时,我如何保持所选内容面板打开?

组件采用活动元素 ID 的值或数组。当您的数据发生变化时,变量中的所有值都将保持打开状态。

@Input() activeIds: string | string[] = [];

https://github.com/ng-bootstrap/ng-bootstrap/blob/master/src/accordion/accordion.ts#L131