私は家のコンポーネントとナビゲーションパネルコンポーネントを角度2に持っています。ユーザーがナビゲーションパネル(サイドバー)のログアウトをクリックすると、ルータをコンソールにログすることによって、現在のURLが「/ login」として正しくレポートされます。ユーザが再度ログインすると、ナビゲーションパネルのルータインスタンスは、ユーザがログインした後に現在のルートを「/ login」としてレポートします。ルータは、それらをホームページに持って行く必要があります。その結果、ユーザーは決してログイン画面を通過することはなく、ブラウザーのビューとURLは更新されません。ルータに現在のルートをAngular 2で更新させるにはどうすればよいですか?
は、これまでのところ、私は次のことを試してみました:
- 手動ngZoneへの呼び出しでrouter.navigate呼び出しをラップ
- (これは問題を解決すると思われる)、ブラウザのキャッシュをクリアし、ページを更新します。 run()
- ホームコンポーネントのコンストラクタで角2のテンプレートキャッシュをクリアします。ここ
コードのいくつかの関連部分である:
:(login.component.tsで)ユーザがログインした後にナビゲーションを処理する方法private doAfterLoggedIn() {
let returnRoute = this.route.snapshot.queryParams["ReturnUrl"] || "/";
this.toaster.toast({
title: `Welcome back!`,
duration: 2000
});
this.router.navigate([returnRoute]);
}
ホームコンポーネントのルート
{
path: '',
pathMatch: 'full',
component: HomeComponent,
resolve: { author: RouteAuthorResolver },
data: {
panelsectionName: "home"
}
},
NAVパネルコンポーネントにおけるログアウト方法の部分:
doLogout() {
// leave immediately
this.router.navigate(["/login"]);
}
まずは、何をしようとしているのですか。 Pluralsightの私の「Angular Routing」コースでも同じことをしています。 'returnRoute'の値は何ですか?また、リダイレクトを使うときは 'pathMatch'だけ必要です。コンポーネントにナビゲートするときは必要ありません。 – DeborahK
こんにちはデボラ、ご協力いただきありがとうございます。運行のないルートからpathMatchを削除しました。 returnRouteは次のようになります: "/ Projects"コード内で、このように: "https:// localhost:44358/login?ReturnUrl =%2FProjects" –
@DeborahK週末にもあなたのコースを見てきましたが、その問題はルートの発注だったかもしれないと思っていましたが、複数のモジュールではなくすべて1つのモジュールになっています。 –