각도 4 응용 프로그램이 있습니다. 한 페이지 (editionPage)에서 페이지를 떠나기 전에 저장 여부를 묻는 대화 상자를 열려고합니다.각도 4의 메뉴에서 페이지를 변경할 때 대화 상자 열기
그래서 이전 페이지로 이동할 수있는 버튼이 있습니다. 이 버튼을 클릭하면 대화 상자가 열립니다.
사이드 바 메뉴에서 버튼을 클릭하면 대화 상자를 열고 싶습니다.
이 내 사이드 바 메뉴입니다 :
<nav class="sidebar" [ngClass]="{sidebarPushRight: isActive}">
<ul class="list-group">
<a routerLink="/first" [routerLinkActive]="['router-link-active']" class="list-group-item">
<div class="titleMenu first" >{{ 'first' | translate }}</div>
</a>
<a routerLink="/tests" [routerLinkActive]="['router-link-active']" class="list-group-item">
<div class="titleMenu">{{ 'Tests' | translate }}</div>
</a>
</ul>
</nav>
그리고 나는이처럼 내 모달 대화 상자를 엽니 다
this.bsModalRef = this.modalService.show(DialogSaveEditComponent);
내가 CanDeactivate
으로 가드를 사용하려고하지만 난 때문에 원하는처럼 작동하지 않습니다 대화 상자가 열리면 오른쪽 부울을 반환 할 수 있으므로 배경을 변경하기 전에 페이지를 변경하거나 옵션을 변경하지 마십시오.
어떻게 할 수 있습니까?
편집 이제 메뉴에서 단추를 클릭 할 때 대화 상자를 여는 함수를 호출합니다. 그러나 routerLink="/first" [routerLinkActive]="['router-link-active']"
때문에 페이지가 변경되고 대화 상자가 나타납니다. 대화 상자에서 단추를 클릭하거나 변경중인 페이지를 취소 한 후에 페이지를 변경하려면 어떻게합니까?
this.router.events.subscribe(
res => {
if(res instanceof NavigationEnd && res.url.startsWith('YOUR URL')) {
//SHOW YOUR MODAL
}
}
)
URL이 최종 URL이기 때문에 시작 URL이 아니기 때문에 작동하지 않습니다. – Adrien
"이전 페이지로 이동할 버튼이 있습니다.이 버튼을 클릭하면 대화 상자가 열립니다."=> 그래서 같은 페이지 번호가 아니십니까? – mcfly
그렇지 않으면 결과 URL을 만들어 대화 상자를 열면됩니다.이보기의 부모로부터도이 작업을 수행 할 수 있습니다 – mcfly