0

Ich gebe Daten zu meinem Modal von meiner Klasse wie unten.Wenn ich ChangeCheck() Funktion innerhalb Modal-Ansicht, checkin wird nicht ändern, wenn ich zurück zu MyMap Klasse gehen.Wissen Sie wie kann Ich schätze es ist Wert von meinem Modal.ionische 2 Abhängigkeitsinjektion zwischen Seite und modal

@Component({ 
    selector: 'page-my-map', 
    templateUrl: 'my-map.html', 
    providers:[CommonVariables] 
}) 

export class MyMap { 
    checkin:boolean=false; 

constructor(public commonvar:CommonVariables,public modalCtrl: 

ModalController, 
public nav:NavController,public alertCtrl:AlertController) { 
} 

public openBasicModal() {//this functions is triggered once I click the button to open my Modal 

    let myModal = this.modalCtrl.create(ModalContentPage,{'myParam':this.checkin}); 
    myModal.present(); 
    } 

} 

@Component({//this is my modal template 
    templateUrl:'my-modal.html', 
}) 
export class ModalContentPage {//my modal class 
    checkin:boolean; 
    constructor(public alertCtrl:AlertController, 
    public viewCtrl: ViewController, 
    params: NavParams, 
    public commonvar:CommonVariables 
) { 
    this.checkin = params.get('myParam');//I am getting this value from MyClass . 

    } 
     ChangeCheck () {//I trigger this function.but when I close the my modal, it doesn't change the checkin which inside `MyClass`. 
       this.checkin = !this.checkin; 
} 

    dismiss() { 
     this.viewCtrl.dismiss(); 
    } 

} 

Antwort

1

Ihr auch public für Ihren params

public params: NavParams 

Um Ihre Frage fehlt: Von cource wird sich nicht ändern es, haben Sie es zurück zu senden.

Fügen Sie diese auf Ihre ModalController Klasse

let myModal = this.modalCtrl.create(ModalContentPage,{'myParam':this.checkin}); 

    myModal.onDidDismiss(data => { 
    console.log(data); 
    }); 
     myModal.present(); 

Dann ist diese ModalContentPage Klasse in Ihrer hinzufügen

dismiss() { 
    let data = { 'checkin': this.checkin }; 
    this.viewCtrl.dismiss(data); 
    } 
+0

leid, dass ich von mistake.the echten Code es falsch eingegeben ist mir true.let verbessere es. –

+0

Ich habe es geändert, aber es ist immer noch .. –

+0

vielen Dank.es funktioniert! :) @LeRoy –

Verwandte Themen