Определить маршрут, оставленный в компоненте в Angular - PullRequest
0 голосов
/ 26 февраля 2020
Маршрутизатор

Vue имеет действительно полезную защиту компонента beforeRouteLeave, заключающуюся в кавычки: "вызывается, когда маршрут, который отображает этот компонент, собирается покинуть его. Имеет доступ к экземпляру этого компонента".

Есть ли что-то похожее в Angular? Короче говоря, я ищу метод, который будет вызываться в компоненте, когда пользователь покидает его из-за изменения маршрута.

Ответы [ 3 ]

1 голос
/ 26 февраля 2020

Вы можете использовать угловой / маршрутный модуль

import { NavigationEnd, NavigationStart, Router } from '@angular/router';
constructor(
        private router: Router,
    ) {
        router.events.subscribe(
            (event) => {
                if ( event instanceof NavigationStart ) {
                    // Handle Navigation Start
                }

                if ( event instanceof NavigationEnd ) {
                    // Handle Navigation End
                }
            });
    }

SIDENOTE: Вы можете заглянуть в Ioni c, если хотите взять под контроль хуки жизненного цикла, которые он использует. Они немного более интуитивно понятны, чем основные ловушки жизненного цикла Angular. https://ionicframework.com/docs/angular/lifecycle

0 голосов
/ 26 февраля 2020

Если вы используете метод navigateByUrl или navigate из Router, то перед вызовом этого метода вы можете выполнить требуемую задачу.

Например ,

     someMethod(){
        ....
        ....
        //desired functionality
        this.rouer.navigateByUrl(some path);
     }
0 голосов
/ 26 февраля 2020

Вы можете использовать хук ngOnDestroy() Lifecycle, чтобы проверить, вышел ли пользователь из вида, его можно найти здесь -> https://angular.io/guide/lifecycle-hooks

...