Я пытаюсь передать данные обратно в корень из push-представления.Когда я нажимаю на представление, я выполняю следующий код:
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 и добавляются данные, возвращаемые из push-представления.в мой массив, выполнив этот код:
saveItem(item){
this.items.push(item);
}
Итак, я могу создать массив элементов.Теперь я хочу иметь возможность обновить любой выбранный элемент массива.Я могу скользить по элементу, когда он отображается в корневом представлении, и выбрать кнопку «РЕДАКТИРОВАНИЕ».Когда я это делаю, я выполняю этот код:
editItem (item, slideItem) {
this.closeSlider(slidingItem);
this.navCtrl.push(ItemUpdatePage, {
item: item
});
if(this.navCtrl.viewDidLeave) {
console.log("viewdidleave executed")
}
}
Отображается моя страница обновления, и я заполняю поля ввода данными, передаваемыми впараметр навигации.Мой вопрос, как я могу ссылаться на обновленные данные, когда контроль возвращается в корень?Я попытался сослаться на this.navCtrl.viewDidLeave, но это неверно, поскольку, я полагаю, на данный момент это относится к корневому представлению, а не к представлению обновления.Я считаю, что this.navCtrl.push () должен возвращать обновленные данные, но я не знаю, как и где получить к ним доступ.
Спасибо за любую помощь.