を正しいURLを取得します私の404のルートでいくつかのテスト:これにより私はルートの次のような構成を持つルータのイベントで
<button type="button" routerLink="unknown">Click here for unknown</button>
が、私はそれが404ページ、しかしに行く意味、それは動作しますが、ボタンのルートhome/xxx
でプレスした後だし、次はmに対して返されますE:
NavigationEnd {id: 2, url: "/home/unknown", urlAfterRedirects: "/404"}
しかし、私は私が私のボタンに設定されたURL、REAL前のルート(home/xxx
)を取得しないように期待していました。これを達成する方法はありますか?
PS1:私はpairwise
を使用しようとしましたが、404ルートを2回呼び出した後でのみ動作します。
私の404のコンポーネントは、次のようになります。
export class NotFoundErrorComponent {
public previousUrl: string;
constructor(
private router: Router
) {
this.router.events
.filter((event: any) => event instanceof NavigationEnd)
.subscribe((event: any) => {
console.log(event);
// this.previousUrl = event.url;
});
}
...
}
多分 'NavigationStart'イベントを使用しますか? –
@ Maximusイベントは問題ではありません。私は 'filter'を完全に削除しましたが、それは元のURLを返しません。実際、IMHOでは、Angularのルートでは作業が複雑すぎます。最後に訪問したルートを取るような簡単なことは、とても複雑です。 –