2017-05-26 9 views
0

モーダルを呼び出したコントローラのメソッドをどうにか呼び出せますか?親メソッドをModalから呼び出す方法

基本的に私はUserInfoModalという名前のホームページを持っています。私は何とかHomePage.changeStatusをUserInfoModalから呼び出せますか?

親:

@Component({ 
    selector: 'page-home', 
    templateUrl: 'HomePage .html', 
}) 

export class HomePage { 
    ... 
    createModal() { 
     let myModal = this.modalCtrl.create(UserInfoModal, item, 
             this.supervisor); 
     myModal.present(); 
    } 

    changeStatus(item) { 
     ... 
    } 
} 

モーダル:

@Component({ 
    templateUrl: 'UserInfoModal.html', 
    selector: 'userinfo-modal' 
}) 

export class UserInfoModal{ 
    ... 
    changeParentStatus() { 
     // call 'changeStatus()' from parent 
    } 
} 
+0

あなたは、コードを追加することができますしてください? – borislemke

+0

モーダルをロードするときにモーダルクラスのコンストラクタでそれを行うことができます –

+0

モーダルに関数を渡すことはできますか? –

答えて

3

@JeffHuijsmansはコメントで正しいです。関数をパラメータとしてNavParamsを使用して渡して呼び出すことができます。モーダルで

@Component({ 
    selector: 'page-home', 
    templateUrl: 'HomePage .html', 
}) 

    export class HomePage { 
     ... 
     createModal() { 
      let myModal = this.modalCtrl.create(UserInfoModal, {item: item, 
              supervisor: this.supervisor,change:this.changeStatus.bind(this)}); 
      myModal.present(); 
     } 

     changeStatus(item) { 
      ... 
     } 
    } 

export class UserInfoModal{ 
    changeStatus:any; 
    constructor(private navParams:NavParams){ 
    this.changeStatus = this.navParams.get("change"); 
    } 
    ... 
    changeParentStatus() { 
     this.changeStatus(); 
    } 
} 
+0

ありがとうございました。これは私のために働いた! – M91

+0

うれしいこと..同じ問題を持つ他の誰かを助ける答えを受け入れることを検討してください –

関連する問題