Javascript 模态OnDidDisease()之后的离子2事件

Javascript 模态OnDidDisease()之后的离子2事件,javascript,angular,ionic2,Javascript,Angular,Ionic2,我是离子2开发的新手,希望得到您的帮助。有人知道OnDidDisclease()之后会发生什么事件吗 我知道如何在模式页面的ondiddisease()之后将参数存储到父属性中 编辑: 这是我的实际代码,我无法解决。在使用vs2015进行调试时,在我调用this.viewCtrl.disease(this.calibration)并且我的断点位于ondiddisease()事件中后,父组件似乎未定义。内部数据有值,但我无法将结果存储到父组件 [父组件未定义错误图像][1] [1]: https

我是离子2开发的新手,希望得到您的帮助。有人知道OnDidDisclease()之后会发生什么事件吗

我知道如何在模式页面的
ondiddisease()
之后将参数存储到父属性中


编辑: 这是我的实际代码,我无法解决。在使用vs2015进行调试时,在我调用
this.viewCtrl.disease(this.calibration)
并且我的断点位于ondiddisease()事件中后,父组件似乎未定义。内部
数据
有值,但我无法将结果存储到父组件

[父组件未定义错误图像][1] [1]: https://i.stack.imgur.com/12TVj.png

这是创建我的模态的代码:

public goToCalibration(calibration, seqNo) {
        this.selectedCalibrationTask = seqNo;
         let modal = this.modalCtrl.create(ModalCalibrationPage, { "calibration": calibration });
         modal.onDidDismiss(data => {
             this.value = data;
            //for (var i = 1; i < this.task.TaskItems.length; i++) {
            //    if (this.task.TaskItems[i].SeqNo == this.selectedCalibrationTask) {
            //        if (data != null) {
            //            this.task.TaskItems[i].Calibration = data;
            //        }

            //        break;
            //    }
            //}
            
        });
        modal.present();
    }

如果我理解正确,您希望在父组件中设置
数据。
您应该在父级中有一个class属性,并在
ondiddisclesh()
callback中的数据值内进行设置

value:any;

presentProfileModal() {
   let profileModal = this.modalCtrl.create(Profile, { userId: 8675309 });
   profileModal.onDidDismiss(data => {
     console.log(data);
     this.value=data;//here
     console.log(JSON.stringify(this.value,undefined,2));
   });
   profileModal.present();
 }
在模式中,您可以发送ViewController的
disclose()
函数。
this.viewCtrl.discouse(data)
如果我理解正确,您希望在父组件中设置
数据。
您应该在父级中有一个class属性,并在
ondiddisclesh()
callback中的数据值内进行设置

value:any;

presentProfileModal() {
   let profileModal = this.modalCtrl.create(Profile, { userId: 8675309 });
   profileModal.onDidDismiss(data => {
     console.log(data);
     this.value=data;//here
     console.log(JSON.stringify(this.value,undefined,2));
   });
   profileModal.present();
 }
在模式中,您可以发送ViewController的
disclose()
函数。
this.viewCtrl.discouse(data)
这就是我在应用suraj解决方案后的答案。我只能在
ondiddisease()
事件之后将结果分配给父组件,而不能操作任何数据。所以我希望这能帮助那些和我面临同样问题的人。

家长的TS代码:

public selectedCalibrationTask: any;
public selectedSeqNo: any;

public goToCalibration(seqNo) {

    if (this.selectedSeqNo == null)
    {
        this.selectedSeqNo = seqNo;
    }   

    let modal = this.modalCtrl.create(ModalCalibrationPage, { "calibration": this.selectedCalibrationTask, "seqNo": this.selectedSeqNo });

     modal.onDidDismiss(data => {
         this.selectedCalibrationTask = data.calibration;
    });
    modal.present();
}

莫代尔的TS代码:


这就是我在应用suraj解决方案后的答案。我只能在
ondiddisease()
事件之后将结果分配给父组件,而不能操作任何数据。所以我希望这能帮助那些和我面临同样问题的人。

家长的TS代码:

public selectedCalibrationTask: any;
public selectedSeqNo: any;

public goToCalibration(seqNo) {

    if (this.selectedSeqNo == null)
    {
        this.selectedSeqNo = seqNo;
    }   

    let modal = this.modalCtrl.create(ModalCalibrationPage, { "calibration": this.selectedCalibrationTask, "seqNo": this.selectedSeqNo });

     modal.onDidDismiss(data => {
         this.selectedCalibrationTask = data.calibration;
    });
    modal.present();
}

莫代尔的TS代码:


嗨,苏拉杰,谢谢你的迅速回复。我以前尝试过,但在我的实际代码中,我发现父组件有“未定义”的问题,您在哪里打印值?另外,您是否确保正确返回?根据我能告诉你的信息,好吧,suraj将编辑我的问题并添加更多详细信息,这样你就能更好地了解情况。在
console.log(JSON.stringify(this.value,undefined,2))
之后,我必须设法确定父组件中仍然存储有数据。所以这个答案真的很有效谢谢suraj!嗨,苏拉杰,谢谢你的迅速回复。我以前尝试过,但在我的实际代码中,我发现父组件有“未定义”的问题,您在哪里打印值?另外,您是否确保正确返回?根据我能告诉你的信息,好吧,suraj将编辑我的问题并添加更多详细信息,这样你就能更好地了解情况。在
console.log(JSON.stringify(this.value,undefined,2))
之后,我必须设法确定父组件中仍然存储有数据。所以这个答案真的很有效谢谢suraj!数据有值,但我可以将结果存储到父组件。您的意思是它返回实际值,但未设置或返回未定义值吗?很抱歉,输入了“但我无法存储”,是的,它返回用户输入的实际值,但未设置。我想您只是检查了这个。值太早了。。为什么不直接记录呢
console.log(JSON.stringify(this.value,undefined,2))
好的,我会检查它,谢谢Suraj。数据有值,但我可以将结果存储到父组件。您的意思是它返回实际值,但未设置或返回未定义值吗?很抱歉,输入了“但我无法存储”,是的,它返回用户输入的实际值,但未设置。我想您只是检查了这个。值太早了。。为什么不直接记录呢
console.log(JSON.stringify(this.value,undefined,2))
好的,我会检查的,谢谢Suraj。
public saveCalibration() {
        this.viewCtrl.dismiss(this.calibration);
    }