закрыть диалоговое окно материала из другого компонента angular
У меня есть компонент A, который открывает диалог материалов
компонент А
openDialog(): void {
const dialogRef = this.dialog.open(**component B**, {
width: '1000px',
});
затем я использую для загрузки изображения в этом диалоговом окне, и с помощью кнопки загрузки я загружаю его с помощью компонента B на сервер. Теперь, когда я закончил загрузку изображения, я хочу закрыть это диалоговое окно из компонента B.
компонент B
onUpload() {
const fd = new FormData();
fd.append('image', this.selectedFile);
this.service.uploadImage(fd).subscribe(
(res:any)=>
{
//how to close dialog here ?
},
Как мне это сделать?
1 ответ
Решение
Диалог | Документация по материалам Angular:
Компоненты, созданные с помощью MatDialog, могут внедрять MatDialogRef и использовать его для закрытия диалогового окна, в котором они содержатся. При закрытии можно указать необязательное значение результата. Это значение результата передается как результат обещания afterClosed.
export class ComponentB {
constructor(
public dialogRef: MatDialogRef<DialogOverviewExampleDialog>
) {}
onUpload(): void {
// upload stuff
this.dialogRef.close();
}
}