Как я могу сказать родительскому окну обновить его сетку из диалога? - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть Грид-ведьма, основанная на угловом материале, в котором есть опция редактирования.Если пользователь нажимает кнопку «Изменить», я открываю форму с помощью диалогового окна.Если пользователь сейчас пытается закрыть форму, я открываю другое диалоговое окно с вопросом, хочет ли он сохранить измененные данные или нет.Если он выберет save, я сохраню данные в моем бэкэнде через api, все работает нормально, оба диалоговых окна закрыты, и я снова в сетке.Что я хочу сделать, так это пойти и сказать сетке обновить, чтобы отразились сохраненные изменения.

Вот код, который я использую в моей форме редактирования

close() {
      if (this.bucketForm.dirty) {
        const dialogRef = this.dialog.open(DialogComponent,
          { disableClose: true,
            data: { message : 'Are you sure you want to Exit without saving your changes ?', title : 'Unsaved Changes' }
          });

        dialogRef.afterClosed().subscribe( result => {
          if (result === true) {
            console.log('Will do an ' + this.submitText + ' ' + this.docID);
            this.saveUpdade();

            this.dialogRef.close();


                } else {
                  this.dialogRef.close();
                }
            });

      } else {
        this.dialogRef.close();
      }
  }

Ответы [ 2 ]

0 голосов
/ 22 сентября 2019

Если вы пытаетесь создать еще одно диалоговое окно на основе ответа из предыдущего диалога, вам лучше всего выйти из первого диалогового окна и, если есть результат, показать второе диалоговое окно в подписке afterClosed для первого диалогового окна.


const editDialog = this.dialogRef.open(EditComponent, { 
...
}); 

editDialog.afterClosed().subscribe( result => {
    if (result) {
       let confirmDialog = this.dialogRef.open(ConfirmDialog, {...});
       confirmDialog.afterClosed().subscribe( result => {
            ...
       });

    }
});

Если вы пытаетесь удалить это из диалогового окна, то вы можете создать новое диалоговое окно подтверждения из диалогового окна редактирования и на основе полученного результата вернуть свой ответ обратно в компонент сетки.

0 голосов
/ 22 сентября 2019

В соответствии с угловым материалом документация на вы можете получить результат из диалогового окна для вашего компонента сетки.Там вы можете делать что угодно с результатом.

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