2017-05-26 92 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

很高興它的工作..考慮接受答案,以幫助其他人有同樣的問題 –