我想在离子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
也许它可以帮助我解释我在编辑中描述的问题?提前致谢! –