2017-11-11 3 views
0

here의 설명서를 따르고 있습니다. 대화 상자에 데이터를 전달할 수 있지만 데이터를 가져 오지 못했습니다. .afterClose(). subscribe()에 대한 결과가 정의되지 않았습니다. 내가 무엇이 누락 되었습니까? 대화 템플리트에서해야 할 일이있는 것 같지만 위의 문서는 예제를 제공하지 않습니다. 나는() 우리가 MatDialogRef.close에 데이터를 전달할 수 있다는 것을 발견 한 후 나는 그것을 알아낼MatDialog에서 데이터를 가져 오는 방법은 무엇입니까?

import {Component, Inject, OnInit} from '@angular/core'; 
import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material'; 

import {MySavior} from '../shared/my-savior'; 
import {Savior} from '../../savior/shared/savior'; 
import {SaviorDataService} from '../../savior/shared/savior-data.service'; 

@Component({ 
    selector: 'app-my-room-savior-select-dialog', 
    template: 'my data name: {{data.name}}' 
}) 
export class MySaviorSelectDialogComponent { 
    constructor(public dialogRef: MatDialogRef<MySaviorSelectDialogComponent>, 
    @Inject(MAT_DIALOG_DATA) public data: any) {} 

    onClose(): void { 
    this.dialogRef.close(); 
    } 
} 


@Component({ 
    selector: 'app-my-room-my-savior', 
    templateUrl: './my-savior.component.html', 
    styleUrls: ['./my-savior.component.css'] 
}) 
export class MySaviorComponent implements OnInit { 

    saviors: Savior[] = []; 
    mySaviors: MySavior[] = []; 

    constructor(private saviorDataServ: SaviorDataService, public dialog: MatDialog) {} 

    ngOnInit() { 
    ... 
    } 

    openSelectDialog(): void { 
    const dialogRef = this.dialog.open(MySaviorSelectDialogComponent, {data: {name: 'test'}}); 
    dialogRef.afterClosed().subscribe(result => { 
     console.log('result ' + result); //i got result undefined 
    }); 
    } 

} 

답변

1

: 다음은 내 코드입니다.

onClose(): void { 
    this.dialogRef.close('pass data here'); 
} 

문서에는 우연히 데이터를 전달할 필요가없는 onNoClick() 기능 만 제공됩니다. 반면에 onOkClick()은 onClose()와 비슷해야합니다. 왜 그들이 문서에 그것을 포함하지 않는지 나는 모른다.

관련 문제