イオン2でモーダルを表示し、いくつかのパラメータを渡したいと思います。それはうまく動作します。 私の主な問題:パラメータはnavParamsにバインドされていますか? 主な問題は、パラメータがnavParamsにバインドされていることです。イオン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);
}
}
を? 私は、dismissがnullでない場合、 "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();
}
}
なぜ「TEST2」「テスト」と同じ値を持っていますか?
ご返信ありがとうございます。これは私にとってはうまくいかなかった。同じ振る舞いで、dataToPassは "this.params"の値に変わります。 –
これはコンストラクタで割り当てられているため、はいですか? – David
編集で説明した問題を私に説明するのに役立つかもしれませんか?前もって感謝します! –