2017-10-13 5 views
2

私はウィッシュリストのオプションを持つページを持っています。ユーザーがログインしていなくてウィッシュリストボタンをクリックすると、しかし、成功したユーザーログインの後、ユーザーはウィッシュリストボタンをクリックした以前のルーティング状態に行きたいですか?angle2の以前のルートを取得する方法、いくつかの処理の後にナビゲーションを前のURLに戻す

私はRoutesRecognizedのようなルータイベントを使用しようとしましたが、ログインページを2回目に訪れば初めて起動することはありません。あなたの助けを仰いでください。

私はルータイベントのpairwise()メソッドを使用しましたが、これも最初の時間ではなく2回目の起動です。つまり、ページ1に戻り、ページ2に戻るとこのメソッドが起動します。ページ1 - > 2ページの最初の訪問で簡単に解雇されることはありません。

+0

の可能性のある重複した[角度2に戻って、最後のページに移動する方法](https://stackoverflow.com/questions/35446955/how-to-go-back-last-page-in -angular-2) – Alex

答えて

4

あなたがする必要がある角度に戻って、前のビューに行くための最も信頼性の高い方法を実装するには、次の

  • インポート{場所}角度/共通@」から。コンポーネントコンストラクタに

  • 噴射位置:

    コンストラクタ( プライベート_location:ロケーション ){}

  • コールバック()は、所望の機能上の方法:

    公開goBack(){ this._location.back(); }

+0

これは動作します!ありがとう。 – user5309516

1

角度はRouterStateSnapshot https://angular.io/api/router/RouterStateSnapshotです。

import { RouterStateSnapshot } from '@angular/router'; 

constructor(state: RouterStateSnapshot) { } 

this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } 
+0

これを使用するとエラーが返されますRouterStateSnapshotのプロバイダはありません!!だから私はこのconstスナップショットを使用しています:RouterStateSnapshot = router.routerState.snapshot;しかし、これは私に前のルート状態ではない現在のルート状態だけを与えます。私のコードをどこに置くべきですか? – user5309516

関連する問題