2017-10-17 8 views
0

사용자가 버튼을 클릭하면이 이벤트를 포착하고 중지하는 지시문이 있습니다. 그런 다음 모달을 열어 사용자 확인을 요청합니다. 사용자가 확인하면 이전 이벤트를 재개해야합니다.각도 재개 이벤트 전파

어떻게 중지 된 이벤트를 재개합니까?

예 :

이 두 개의 다른 이벤트, 첫 번째는 openModal로 여기지만 (? 왜 그냥 모달을 열지 마십시오) 쓸모 보이는 나를 위해
markAsSeen($event) : void { 

    // pause whatever user wanted to click 
    $event.stopPropagation(); 

    // open modal and ask user for confirmation 
    let modalInstance = this.modalService.openConfirmationModal(); 

    // on modal close, if positive event continue whatever user clicked 
    modalInstance.onClose((response) => { 
     if(response) { 
      // this line should resume $event 
      $event.originalEvent(); // how to achieve this? 
     } 
    }) 
} 
+0

당신은 좀 더 당신의 필요성을 묘사 할 수 있습니까? – Stefdelec

+0

편집하십시오. 제발 편집 좀주세요,이 질문과 같은 것이 필요합니다. 각도 4^: https://stackoverflow.com/questions/7811959/how-to-continue-event-propagation-after-cancelling – Mardari

+1

이벤트를 다시 실행할 수 있습니다. Subject Behaviors를 사용하여 모달에서 구성 요소로 메시지를 전달할 수 있습니다 (https://stackoverflow.com/questions/36639486/angular2-manually-firing-click-event-on-particular-element/36639596#36639596 –

답변

1

, 두 번째는 확인하기 사용자가 Confirm을 클릭했을 때.

나에게 가장 쉬운 방법은 첫 번째 이벤트 이미 터가 필요한 경우 모달을 열고 두 번째 이벤트는 양수인 경우 확인 프로세스를 시작하는 것입니다. 다른 방법은 확인에 "status"변수를 추가하는 것입니다. -1 시작하지 않으려면 (모달을 닫음), 긍정적 인 확인을 위해 1을, 진행 중에 0을 입력하십시오. 마지막으로

사용, 멀리 클릭 event.target가 클릭 한 대상에게 있습니다

onClick(event) { 
if (!this.element.nativeElement.contains(event.target)) { 
     closeModal(); // or not 
    } 
} 

같은 것을 사용자를 피하기 위해

편집 : 온 클릭은 @Component에 추가해야합니다

@Component({selector..., host: { 
    '(document:click)': 'onClick($event)', 
    }});