2016-11-13 1 views
1

ionic2 (v 2.1.7)의 모달 폼을 닫은 후에 어떻게 메서드를 호출 할 수 있습니까? 페이지 내 워크 플로우모달 폼이 닫힐 때의 콜백

  • 사용자를로드되어 다음 (페이지 A)
  • 다음 모달 폼을 열기 위해 버튼을 클릭 (페이지 B)
  • 몇 가지 세부 사항을 추가
  • (이 서비스를 업데이트합니다) 이것은 뭐입니다
  • 가 지금은 서비스

페이지의 (A)에 콜백을 추가하고 에서 새로운 값을 읽을 수 (페이지 B) 모달 폼을 닫습니다

  • t 나는

    #page A 
    let modal = this.modalCtrl.create(NewListPage); 
    modal.present(); 
    getValueFromService() 
    
    #page B 
    updateService() 
    this.viewCtrl.dismiss(); 
    

    가 현재 프로그램이이이 때문에, 그것의 getValueFromService()에 가기 전에 닫습니다 Page B 기다리고하지, modal.present();에 도달하면,이다 무슨 일이 새로 업데이트 된 값을 한 번에 읽을 수없는 짓을했는지 I 모달 형식을 닫습니다.

    // Page A 
    presentModal() { 
        let modal = this.modalCtrl.create(NewListPage); 
    
        modal.onDidDismiss(() => { 
        // This is going to be executed when the modal is closed, so 
        // you can read the value from the service here 
        getValueFromService(); 
        }); 
    
        modal.present(); 
    } 
    

    을 그리고 당신은

    // Page B 
    updateService(); 
    this.viewCtrl.dismiss(); 
    

    하시기 바랍니다 또 말하기를 다음과 같이 :

    어떤 도움이 많이 같이

    환호

  • 답변

    1

    사용할 수를 onDidDismiss (doc) 주시면 감사하겠습니다사이에 데이터를 보낼 수 있습니다.과 Page B, 그래서 아마 당신은 (당신이 단지 앞뒤로 데이터를 전송하기 위해 그 일을하는 경우) 그냥 이런 식으로 데이터를 전송하는 서비스를 사용하지 않도록 할 수 있습니다

    // Page A 
    presentModal() { 
        let modal = this.modalCtrl.create(NewListPage); 
    
        modal.onDidDismiss(dataFromModal => { 
        // You can use the data here 
        console.log(dataFromModal.foo); 
        }); 
    
        modal.present(); 
    } 
    

    그리고 페이지 B

    에서
    // Page B 
    // Instead of calling the service, you can send the data to the caller 
    let data = { 'foo': 'bar' }; 
    this.viewCtrl.dismiss(data); 
    
    +1

    감사합니다. 동료가 완벽하게 작동합니다. – sameera207

    +0

    듣기 좋다. :) – sebaferreras

    관련 문제