2017-10-13 5 views
2

위시리스트 옵션이있는 페이지가 있습니다. 사용자가 로그인하지 않고 위시리스트 버튼을 클릭하면 사용자가 로그인 페이지로 리디렉션됩니다. ,하지만 성공적인 사용자 로그인 후에 나는 사용자가 위시리스트 버튼을 클릭 한 이전 라우팅 상태로 사용자를 보내고 싶습니까 ??angular2에서 이전 경로를 얻는 방법, 일부 처리 후에 이전 URL로 되돌아 가기

RoutesRecognized와 같은 라우터 이벤트를 사용해 보았지만 두 번째로 로그인 페이지를 방문하면 처음으로 작동하지 않습니다. 제안보다 도움을 주시기 바랍니다.

나는 라우터 이벤트의 pairwise() 메소드를 사용하기도하지만 이것은 첫 번째 시간이 아닌 두 번째 시간, 즉 1 페이지로 돌아가서 page2로 다시 이동하면이 메소드가 실행됩니다. 첫 번째 방문에서 페이지 1 -> 2 페이지로 넘어 가지 않아도됩니다.

+0

가능한 복제 [각도이 다시 마지막 페이지로 이동하는 방법] (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

각 각도 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