【发布时间】:2018-05-29 08:49:47
【问题描述】:
我正在尝试将数据从推送视图传回根目录。当我推送视图时,我正在执行以下代码:
addItem(){
let addModal = this.modalCtrl.create(AddItemPage);
addModal.onDidDismiss((item) => {
if(item){
this.saveItem(item);
this.setData();
}
});
addModal.present();
}
当我执行这段代码时,一个新视图被推送到导航堆栈。我在推送的页面中输入信息,然后单击“保存”按钮。当我点击“保存”按钮时,我执行以下代码:
saveItem(){
this.dateAdded=new Date();
let newItem = {
id: this.dateAdded,
date: this.datepipe.transform(this.dateAdded, 'MM-dd-yy'),
name: this.name,
status: "pending",
description: this.description
};
this.view.dismiss(newItem);
}
当控制权传回根时,addModal.onDidDismiss 代码被执行,并且通过执行以下代码将从推送视图返回的数据添加到我的数组中:
saveItem(item){
this.items.push(item);
}
所以,我能够建立一个项目数组。现在,我希望能够更新任何选定的数组元素。当项目显示在根视图中时,我可以在项目上滑动并选择我的“编辑”按钮。当我这样做时,我执行以下代码:
editItem(item,slidingItem){
this.closeSlider(slidingItem);
this.navCtrl.push(ItemUpdatePage, {
item: item
});
if(this.navCtrl.viewDidLeave) {
console.log("viewdidleave executed")
}
}
我的更新页面被显示出来,我用导航参数中传递的数据填充输入框。我的问题是,当控制权返回到根目录时,如何引用更新的数据?我试图引用 this.navCtrl.viewDidLeave 但这是不正确的,因为我认为此时这指的是根视图而不是更新视图。我相信 this.navCtrl.push() 应该返回更新的数据,但我不知道如何/在哪里访问它。
感谢您的帮助。
【问题讨论】:
标签: angular cordova ionic-framework