Winkel-Material Dialog Rückgabewert
Ich habe einen folgenden dialog Komponente (die ich öffnen mit dialog.open(MyDialogComponent)
in einer anderen Komponente):
export class MyDialogComponent implements OnInit {
constructor(public matDialogRef: MatDialogRef<MyDialogComponent>) {}
ngOnInit() {}
}
Ich weiß, ich kann keine Daten an die aufrufende Komponente durch ausführen matDialogRef.close(dataToReturn)
gebunden, auf eine Schaltfläche im dialog-Komponente. Aber wie kann ich die Daten zurückgegeben, wenn ein Benutzer geklickt anderswo, aber das popup, um es zu schließen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn jemand interessiert ist, ich habe eine Lösung gefunden (nicht sicher, ob es der beste ist). Nur das deaktivieren des default-close-operation, damit das popup nicht zu schließen, auf den hintergrund klicken, beim schließen ist es mit Daten param auf hintergrund klicken.
Diese Weise wird die aufrufende Komponente, die die Daten erhält, ob der dialog wurde geschlossen, indem die Schaltfläche angeklickt oder anderswo.
esc
- Taste. Ich stöberte durch den source-code und weiß nicht wirklich sehen, einen besseren Weg, dies zu tun. Zum Glück, den hintergrund und klicken Sie aufesc
keydown-Ereignis sind die nur zwei Dinge, die sein müssen reimplementiert, um die gleiche Funktionalität.dataToReturn
Objekt ?Rufen Sie die
close(dataToReturn)
imbeforeClose()
zu setzen, den dialog führen:Dies funktioniert, wenn der dialog wird geschlossen, indem Sie auf den hintergrund oder die Taste ESC.
matDialogRef.beforeClose().subscribe((value) => matDialogRef.close(this.dataToReturn)); }