Ионный толкнул представление, возвращающее обновленные данные - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь передать данные обратно в корень из 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 () должен возвращать обновленные данные, но я не знаю, как и где получить к ним доступ.

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 29 мая 2018

Мне просто нужно было немного отдохнуть, и я понял, что мне нужно делать.Я заменяю свою функцию editItem этим кодом, и у меня все работает правильно:

editItem(item, slidingItem) {

  this.closeSlider(slidingItem);
  let addModal = this.modalCtrl.create(ItemUpdatePage,{
    item: item
  });

  addModal.onDidDismiss((item) => {

      if(item){
        this.updateArray(item);
      }

  });

  addModal.present();

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...