如何从Modal调用父方法

M91*_*M91 1 typescript ionic2 angular

有可能以某种方式调用称为模态的控制器方法吗?

基本上我有HomePage,其中我称为UserInfoModal.我可以以某种方式从UserInfoModal调用HomePage.changeStatus吗?

家长:

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

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

   changeStatus(item) {
      ...
   }
}
Run Code Online (Sandbox Code Playgroud)

莫代尔:

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

export class UserInfoModal{
   ...
   changeParentStatus() {
      // call 'changeStatus()' from parent
   }
}
Run Code Online (Sandbox Code Playgroud)

Sur*_*Rao 6

@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) {
          ...
       }
    }
Run Code Online (Sandbox Code Playgroud)

在模态中,

export class UserInfoModal{
    changeStatus:any;
   constructor(private navParams:NavParams){
     this.changeStatus =  this.navParams.get("change");
   }
   ...
   changeParentStatus() {
      this.changeStatus();
   }
}
Run Code Online (Sandbox Code Playgroud)