1. ホーム
  2. アンギュラー

[解決済み】Angularでルート変更を検出する方法は?

2022-04-15 10:49:35

質問

のルート変更を検出したい。 AppComponent .

その後、グローバルユーザートークンをチェックして、ユーザーがログインしているかどうかを確認し、ユーザーがログインしていない場合はリダイレクトできるようにします。

どのように解決するのですか?

Angular 2 では、以下のことが可能です。 subscribe (Rxイベント)をRouterインスタンスに送信します。 そのため、以下のようなことが可能です。

class MyClass {
  constructor(private router: Router) {
    router.subscribe((val) => /*whatever*/)
  }
}

編集 (rc.1以降)

class MyClass {
  constructor(private router: Router) {
    router.changes.subscribe((val) => /*whatever*/)
  }
}

編集2 (2.0.0以降)

も参照してください。 Router.eventsドキュメント

class MyClass {
  constructor(private router: Router) {
    router.events.subscribe((val) => {
        // see also 
        console.log(val instanceof NavigationEnd) 
    });
  }
}