MatDialogRef .afterClosed Observable - PullRequest
       10

MatDialogRef .afterClosed Observable

0 голосов
/ 03 июля 2018

Я использую MatDialogRef, чтобы вызвать Модал из компонента. При закрытии ModalComponent я пытаюсь вернуть данные , но кажется, что ничто не возвращает .

dialogRef = dialog.open(ModalComponent,ConfigObj).afterClosed
  .subscribe(data => console.log(data));

Кажется, что все другие функции Модала, включая передачу данных с baseComponent на ModalComponent, работают нормально.

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Старый вопрос, но в случае, если кто-нибудь еще наткнется на это:

DialogRef вернет данные, которые вы передаете при вызове dialogRef.close (). Когда вы закончите в своем диалоговом компоненте, позвоните:

const myDataObject = {
field1: 'My field'
}
dialogRef.close(myDataObject);

Затем в родительском компоненте подпишитесь на данные с помощью:

dialogRef.afterClosed()
.subscribe( data => console.log(myDataObject.field1));

Будет отображаться «Мое поле».

Возвращаемое значение модального объекта - это не объект данных, который вы передаете, а просто то, что вы хотите вернуть.

0 голосов
/ 03 июля 2018

Сначала получите ссылку на диалог:

let dialogRef = dialog.open(ModalComponent,ConfigObj);

Затем установите абонента в том же блоке кода:

dialogRef.afterClosed()
    .subscribe( data=>console.log(data));

Кроме того, помните, что afterClosed должен быть вызван (), в отличие от того, что вы сделали.

...