Почему scrollTo работает в моем ClickListener, но не в AfterViewInit? - PullRequest
0 голосов
/ 10 июля 2020

Мне интересно, почему работает следующее:

scroll(){
    window.scrollTo(0, this.ypos); // works perfectly fine
}

И в моем html .component:

<button (click)="scroll()">Scroll</button>

, но следующее не сработает:

ngAfterViewInit(){
    console.log(this.ypos); // is perfectly defined
    window.scrollTo(0, this.ypos); // won't work
}

Кто-нибудь знает почему не работает? window.scrollTo() тоже не работает для ngOnInit но почему?

1 Ответ

1 голос
/ 10 июля 2020

Вместо использования объекта окна используйте службу angular Viewportscroller для прокрутки до указанной позиции.

component.ts

   import { ViewportScroller } from '@angular/common';

   constructor(private viewportScroller: ViewportScroller) {}

   ngAfterViewInit(){
    this.viewportScroller.scrollToPosition([0,this.ypos]); 
   }
...