URLにリダイレクトしてリロードする必要がある特別な条件があります。Angular Router navigateとreloadは、コンポーネントを1回レンダリングする必要がありますが、2回レンダーする必要があります。
私は、ルータからこのメソッドを使用しています:
this.reload()
this.router.navigateByUrl('login');
this.reload();
は、ページをリロード強制する角度ゾーンの外に働いている機能です。私はサーバーから来るいくつかの資産を制御できないので、リロードを強制する必要があります。
リロードのコードは次のとおりです。
public reload(): any {
return this.zone.runOutsideAngular(() => {
location.reload()
});
}
問題がある:私は初めに、ログインに移動していますし、ページがデフォルトの動作であるリロードされる
。
必要な出力:
だけでコンポーネントをレンダリングせずに移動し、私たちはサイトのほとんどでログインページにリダイレクトされているいくつかの不正なURLを打ったときのようにリロードします。
あなたは 'navigateByUrl'をスキップし、代わりにウィンドウの' location'プロパティを置き換えます: 'location.replace( 'myUrl');' – Philipp
これは、より多くをリロードし、ルートのURLを変更することもありません。 – PaladiN