Прокрутка другого компонента не работает (ошибка типа)

#html #angular

#HTML #угловой

Вопрос:

Я пытаюсь создать меню навигации, в котором элементы меню позволяют перейти к определенной карточке на странице. Это работает нормально, когда пользователь находится именно на этой странице. Но я также хочу, чтобы он работал, когда пользователя нет на этой странице. Я попытался сначала перейти на правильную страницу, а затем прокрутить просмотр конкретной карты. Но это дает мне ошибку типа. Если я нажму на него во второй раз, он будет прокручиваться просто отлично.

Это код, который я использую для прокрутки в нужную карту:

 //sroll to calendar
  async calendar() {
    this._router.navigate(["/Home"]);
    const elmntToView = document.getElementById("Calendar");
    elmntToView.scrollIntoView({behavior: 'smooth'}); 
    this.toggleHidden()
  }

  //scroll to export
  export() {
    this._router.navigate(["/Home"]);
    let elmntToView;
    elmntToView = document.getElementById("Export");  
    elmntToView.scrollIntoView({behavior: 'smooth'});
    this.toggleHidden()
  }
 

Сначала я перехожу на правильную страницу (Home), а затем вызываю метод document.getElementById(), но это выдает мне ошибку:

Ошибка типа

Есть ли какой-нибудь способ это исправить? Мне кажется, что docment.getElementById() вызывается до завершения навигации, но я также пытался дождаться навигации, но это по-прежнему вызывает ту же проблему…

Комментарии:

1. scrollIntoView не будет выполнен, поскольку вы сначала выполнили перенаправление, а те блоки кода после него не будут выполнены.

2. Если эта проблема getElementById() вызывается до завершения навигации, вы можете использовать ngAfterViewInit() или в своем header.component.html шаблоне, где вы можете использовать это свойство / вызов метода *ngIf . если вы поделитесь stackblitz , это будет полезно исправить.