#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(...)