2017-05-26 55 views
0

是否有可能以某种方式调用调用模态的控制器的方法?如何从模态调用父方法

基本上我有我在其中调用UserInfoModal的HomePage。我可以以某种方式从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) { 
     ... 
    } 
} 

模态:

@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

很高兴它的工作..考虑接受答案,以帮助其他人有同样的问题 –