NGB-аккордеон применяет прокрутку / фокус, когда ActiveIds установлен - PullRequest
0 голосов
/ 18 декабря 2018

У меня на моем сайте много аккордеонов, каждый из которых отображается с компонентом ngb-accordion в цикле *ngFor.

каждый аккордеон имеет идентификатор элемента: id="elem-{{row.id}}".чтобы открыть определенную панель, я использую activeIds, это прекрасно работает.но я не хочу также выделять этот элемент, когда он открыт по умолчанию.

я пробовал его в своем компоненте с: this.elementRef.nativeElement.querySelector('#elem-' + this.activeId).scrollIntoView();

и пробовал с .focus ()на выше, но ничего не работает.

здесь мой компонент-шаблон:

<ngb-accordion [closeOthers]="true" activeIds="plan-{{activeId}}">
<ngb-panel *ngFor="let planRow of plan$ | async" title="Spieltag {{planRow.gameday}}" id="plan-{{planRow.gameday}}">
  <ng-template ngbPanelContent>
    <app-plan-row class="planRow" *ngFor="let row of planRow.rows" [row]="row"></app-plan-row>
  </ng-template>
</ngb-panel>

и мой component.ts:

ngOnInit(): {
    this.plan$.subscribe(plan => {
        plan.forEach(planRow => {
            const dateBegin = moment(planRow.dateFrom);
            const dateEnds  = moment(planRow.dateTo);
            if (moment().isBetween(dateBegin, dateEnds)) {
                this.activeId = planRow.gameday;
                this.elementRef.nativeElement.querySelector('#plan-' + planRow.gameday).scrollIntoView();
            }
        });
    });
}
...