Как вызвать функцию после полной загрузки страницы в Angular?

#angular #routes

Вопрос:

Я пытаюсь вызвать функцию на определенном маршруте после полной загрузки страницы, например, если пользователь вошел в систему и первым перешел на маршрут главной страницы, и он успешно загрузился, функция будет вызывать/вызывать сама по себе.

 constructor( private router: Router) {
  this.router.events.subscribe((event: Event) => {
   if (event instanceof NavigationEnd) { 
      
     console.log(router.url);
     //function writes here
      
    }
  });
  
  } 
 

Я вызываю эту функцию в main.ts, но когда пользователь пытается войти в систему, эта функция вызывает почему ?

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

1. Вы хотите сказать, что эта функция находится в main.ts..?

2. да, это в основном.ts

Ответ №1:

Я думаю, что если вам нужно использовать функцию, которая вызывает сама себя или проверяет, полностью ли загружена страница при входе пользователя в систему, пользователи должны вызывать ее в ngOnInit.

 ngOnInit() {
 //please call your function
}
 

Ответ №2:

Это наблюдаемое вызывается каждый раз, когда вы меняете страницу… попробуйте применить фильтр на интересующей вас странице

 this.router.events
    .pipe(
      takeUntil(this.unsubscribe),
      filter((x): x is NavigationEnd => x instanceof NavigationEnd),
      map(x => x.url == 'your url')
    )
   .subscribe(...)