私たちのアプリのウェブサイトにiFramingしているクライアントがいます。彼らは、アプリ内のルーターナビゲーションが自分のサイトの戻るボタンのナビゲーションに影響を与えることを望んでいません。
投稿メッセージを使用して、history.back()がトリガーされるたびに、iFrameが親ウィンドウと通信するようにするなど、いくつかの方法を試しました。
私の質問は、Angular 2のルーターを使用するときに、ブラウザーの履歴に影響を与えない簡単な方法があるかどうかです。私が知る限り、Angular 2の高度なルータードキュメント: https://angular.io/docs/ts/latest/guide/router.html
Angular 2のルーティングで、履歴への状態の追加をスキップする方法が組み込まれていることがわかりました。実際には、エディターのインテリセンス内のランダムなプロパティをチェックしていることがわかりました。
ルーティングコードは次の場所から取得する必要がありました。
this.router.navigate([`/myPage/${this.Id}`], { relativeTo: this.route });
に:
this.router.navigate([`/myPage/${this.Id}`], { relativeTo: this.route, skipLocationChange: true });
さらに、NavigationExtras
にはオプションがあり、履歴内の現在の状態を新しい状態に置き換えることができます。
this.router.navigate(['/view'], {replaceUrl: true});