Выделите или начните с определенного элемента в списке cdkVirtualFor. - PullRequest
0 голосов
/ 04 мая 2019

У меня длинный список элементов, и я хотел бы иметь возможность из параметра 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

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

...