Выделите или начните с определенного элемента в списке cdkVirtualFor.

У меня длинный список элементов, и я хотел бы иметь возможность из параметра get URL-адреса указать, к какому элементу я хочу получить доступ первым в списке

item.component.ts

@ViewChild(CdkVirtualScrollViewport) viewPort: CdkVirtualScrollViewport;

ngOnInit() {
  this.getItems();
}
getItems(): void {
  this.itemId = +this.route.snapshot.paramMap.get('id');
  this.itemService.getItems().subscribe(
    items => this.items=items,
err => console.error('Observer got an error: ' + err),
    () => this.scroll()
  );
}
scroll(){
  this.viewPort.scrollToIndex(this.itemId, 'auto');
}// doesn't work

попробовал с

document.querySelector('#'+this.itemId).scrollIntoView({behavior: "smooth"}) // doesn't work either

item.component.html

<cdk-virtual-scroll-viewport style="height:800px" itemSize=1>    
  <div *cdkVirtualFor="let i of items" id="{{i.id}}">
    ...
  </div>         
</cdk-virtual-scroll-viewport>

при доступе к странице /site/item/5

Хотелось бы чтобы страница прокручивалась до пункта 5 автоматически

или, если не возможно, чтобы начать список, показывая им

0 ответов

Другие вопросы по тегам