У меня на моем сайте много аккордеонов, каждый из которых отображается с компонентом 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();
}
});
});
}