Не закрывайте диалоговое окно, пока данные не пройдут - PullRequest
0 голосов
/ 17 октября 2019

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

Когда компонент менеджера получил данные, отправленные в службу и ожидающие ответа. Я хочу создать спиннер в диалоговом окне и прокручивать его, когда служба все еще работает, и ждать ответа.

У кого-нибудь есть хороший совет / подсказка для меня? :) Буду признателен

Компонент диалога в данный момент (действие нажатия кнопки)

doAction() {
  this.dialogRef.close({ event: this.action, data: this.form.value });
}

Компонент диспетчера в настоящее время

openDialog(action, obj) {
  // open dialog    
});

dialogRef.afterClosed().subscribe(result => {
  // action handling, send data to CRUD functions
});

1 Ответ

0 голосов
/ 17 октября 2019

Создайте новый источник событий @output в компоненте диалога

@Output() dataChange = new EventEmitter<any>();

Затем используйте этот dataChange для обработки действия диалога

doAction() {
 this.dataChange.emit(this.form.value);
}

В компоненте менеджера получите данные следующим образом

dialogRef.componentInstance.dataChange.subscribe(result => {
  // action handling, send data to CRUD functions
});
...