2017-10-13 48 views
2

後,我有一個網頁心願的選擇,現在如果用戶沒有登錄並點擊心願列表按鈕,然後用戶將被重定向登錄頁面,但成功的用戶登錄後,我想讓用戶到之前的路由狀態,用戶點擊wishlist按鈕?如何獲得在angular2以前的路線,所以一些處理使導航回到以前的URL

我嘗試使用路由器的事件,如RoutesRecognized但如果我訪問它激發了登錄頁面,第二次是沒有得到發射了第一次。任何建議比請不要幫助。路由器事件的

我甚至使用成對()方法,但是這也觸發第二次不是第一次,也就是如果我回到第1頁和重新定位到第2頁,此方法會激發起來。它根本沒有得到從第1頁解僱了在第一次訪問 - >第2頁

+0

的可能的複製[如何去角2回最後一頁(https://stackoverflow.com/questions/35446955/how-to-go-back-last-page-in -angular-2) – Alex

回答

4

爲了實現最可靠的方式返回到以前的視圖角度,你必須:

  • 進口{}定位從「@角/常見;上部件構造

  • 進樣的位置:

    構造( 私人_location:位置 ){}

  • 回撥()方法在所期望的功能:

    public goBack(){ this._location.back(); }

+0

這工作!謝謝。 – user5309516

1

您可以使用angulars 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