web-dev-qa-db-ja.com

angularルータをナビゲートしてからリロードします

特定のルートに移動した後にアプリをリロードしたいので、.

Router.navigateを使用してユーザーの役割に基づいて特定のルートに移動しますが、それは正常に機能しますが、サインインページからの場合はルーティング後にページをリロードする必要があります(ユーザーがその特定のルートを開くたびにではありません)-ここでリロードすると更新されますユーザーの言語に応じたページ言語

だから私がやろうとしたことは

  else if(this.sp.role === 'Admin') {
      console.log('ooo')
      this.router.navigate(['/admin/dashboard']); 
      this.window.location.reload();

しかし、それはサインインページをリロードします

8
Omar Abdelhady

シンプルな

this.router.navigate(['path/to'])
  .then(() => {
    window.location.reload();
  });
28
Vlad

あなたができることは、リロードロジックをリロードする必要がある実際のコンポーネントにシフトすることです。 NavigationEndイベントをサブスクライブして、そこからのルートを確認できます。

this.router.events
  .pipe(
    filter(value => value instanceof NavigationEnd),
  )
  .subscribe(event => {
  if (event.url === 'http://mypreviousUrl.com') {
    this.window.location.reload();
  }
});
6
danielreiser