Прокрутите страницу вверх, нажав angular 8. - PullRequest
0 голосов
/ 04 мая 2020

У меня есть angular 8 приложение.

И у меня есть кнопки навигации для следующего и предыдущего. Но я хочу заархивировать, что вы перейдете к началу страницы, когда будет запущено следующее.

Итак, у меня есть следующее:

 <h4 id="heading"  #goUp class="echeq-title">{{ currentEcheqPage.title }}</h4>

и файл ts:

export class EcheqPageComponent implements OnInit, AfterViewInit {

  @Input() currentEcheqPage: EcheqPage;
  @Input() currentEcheqPager: EcheqPager;
  @ViewChild('goUp', {static: false}) contentPage: ElementRef;

  // We use template variables to query the components
  @ViewChildren('echeqElement') elementComponents: QueryList<EcheqElementComponent>;

  EcheqElement = EcheqElement;
  elementsChanged = true;
  container: HTMLElement;

  constructor( private echeqService: EcheqService ) { }

  ngOnInit() {
    // document.getElementById ('heading').scrollIntoView();
  }

  ngAfterViewInit(): void { 
    this.showUp();

  }
}

private showUp(): void {
    this.contentPage.nativeElement.scrollTo( 0, 0 );
  }



Но я не получаю ошибку. Но также это не навигация к началу страницы. В данном случае заголовок h4.

Так что мне нужно изменить?

Спасибо.

Ответы [ 3 ]

1 голос
/ 04 мая 2020

Если я вас правильно понимаю, измените следующий раздел:

 private showUp(): void {
    window.scroll(0,0);
  }
0 голосов
/ 05 мая 2020

Это решение:

  @ViewChild('goUp', { static: true }) contentPage: ElementRef;

 ngOnChanges(): void {
   this.showUp();
  }

  showUp() {
     this.contentPage.nativeElement.scrollIntoView();
  }



0 голосов
/ 04 мая 2020

Объект документа в typScript / javascript имеет функцию scrollIntoView, которую можно использовать для прокрутки к указанному c элементу. В вашем случае вы могли бы создать функции, как показано во фрагменте ниже:

showUp() {
    const element = document.querySelector('#goUp');
    element.scrollIntoView();
}

Надеюсь, что это было полезно для вас. :-)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...