我想在離子2中顯示模態並傳遞一些參數。這工作正常。 我的主要問題:參數綁定到navParams? 主要問題是,參數綁定到navParams?Ionic 2模態參數
var dataToPass = this.VLSMfields;
let modal = this.modalCtrl.create(VlsmMetaDataPage,dataToPass);
modal.onDidDismiss(data => {
//this.VLSMfields is already edited <- Problem
if(data != null){
this.VLSMfields.Inputs = data;
}
});
modal.present();
模態:
export class VlsmMetaDataPage {
constructor(public viewCtrl: ViewController,public alertCtrl: AlertController, public navParams: NavParams) {
}
Hosts = {
avalible : 0,
used : 0,
left:0,
}
inputs = [];
ionViewDidLoad() {
console.log('ionViewDidLoad VlsmMetaDataPage');
this.Hosts.avalible = this.navParams.data.Hosts;
this.Hosts.left = this.navParams.data.Hosts;
this.inputs = this.navParams.data.Inputs;
}
closeModal(){
this.viewCtrl.dismiss(null);
}
submitModal(){
//Gets edited before in HTML
this.viewCtrl.dismiss(this.inputs);
}
}
有什麼不對? 我只是想設置「this.VLSMfields.Inputs」數據,如果解僱不爲空。
編輯: 我希望這個代碼說明了我的問題,更好地:
export class ProfilePage {
private test;
private test2;
constructor(public navCtrl: NavController,public viewCtrl: ViewController, private navParams: NavParams) {
this.test = navParams.get("data");
this.test2 = navParams.get("data");
}
ionViewDidLoad() {
console.log('ionViewDidLoad ProfilePage');
}
private doSmth(){
this.test.Edit = "test123";
console.log(this.test); // {edit:"test123"}
console.log(this.test2);// {edit:"test123"}
}
private cancel(){
this.navCtrl.pop();
}
private submit(){
this.navCtrl.pop();
}
}
爲什麼有「測試2」相同的值「測試」?
感謝您的回覆。這對我不起作用。同樣的行爲,dataToPass更改爲「this.params」的值。 –
是的,因爲它是在構造函數中分配的? – David
也許它可以幫助我解釋我在編輯中描述的問題?提前致謝! –