2017-02-10 5 views
1

각도 2에서 브라우저를 제어하는 ​​더 좋은 방법이 있습니까? 예 : 다시 클릭하면 확인 페이지가 X 페이지로 리디렉션 된 것으로 확인되면 확인 대화 상자를 표시합니다. 그렇지 않으면 동일한 페이지에 머물러 있습니다.다시 브라우저를 각도 2로 제어

location.onPopState()를 사용하면 브라우저에서 다시 제어 할 수 없으므로 결국 다시 리디렉션됩니다.

위의 동작은 authguard를 사용하여 수행 할 수 있습니까? angular2 라우팅을 canActivate 할 수 있습니까?

답변

1

찾고있는 것은 canDeactivate 가드입니다. 빅터는 그의 책에서 이렇게 설명합니다 :

canDeactivate 가드는 나머지와 다릅니다. 주된 목적은 사용 권한을 확인하지 않고 확인을 요청하는 것입니다 ( ). 이를 설명하기 위해 사용자가 저장하지 않은 변경 사항으로 작성 대화 상자를 닫을 때 확인을 묻는 메시지를 으로 변경하십시오.

그는 다음 SaveChanges 가드을 수행하는 방법을 공유하는 계속 :

canDeactivate(component: ComposeCmp, route: ActivatedRouteSnapshot, 
    state: RouterStateSnapshot): Promise<boolean> { 
     if (component.unsavedChanges) { 
     return this.dialogs.unsavedChangesConfirmationDialog(); 
     } else { 
     return Promise.resolve(true); 
     } 
    } 

은 내가보기 엔 책을 구입하는 것이 좋습니다. https://leanpub.com/router