angular - 如何在 Angular 12 中关闭 mat-dialog 后调用函数
问题描述
我有一个名为ListScheduleComponent
它的组件,它有一个打开mat-dialog
视图CreateScheduleComponent
的功能:
handleDateSelect(selectInfo: DateSelectArg) {
this.fileNameDialogRef = this.dialog.open(CreateScheduleComponent, {
data: {
startdate: this.datePipe.transform(selectInfo.start, 'yyyy-M-dd'),
enddate: this.datePipe.transform(selectInfo.end, 'yyyy-M-dd'),
},
});
}
和一个加载所有事件的函数:
getAllEvents(){
//Events are loaded and displayed in the calendar
}
所以它看起来像这样:
现在在我的CreateScheduleComponent
我有一个提交功能:
onSubmit(): void {
this.calendarService
.createNewEvent(this.eventForm.value)
.subscribe((response) => {
if (response.statuscode===201) {
//Call getAllEvents();
} else {
console.log(response.message);
}
});
}
我知道如何关闭此对话框,this.dialogRef.close()
但我的问题是,如何调用 getAllEvents(); ListScheduleComponent
表单后组件的功能onSubmit()
?
解决方案
在对话框上订阅 afterClosed() 方法并在此处执行您想要在对话框关闭后执行的操作 -
handleDateSelect(selectInfo: DateSelectArg) {
this.fileNameDialogRef = this.dialog
.open(CreateScheduleComponent, {
data: {
startdate: this.datePipe.transform(selectInfo.start, "yyyy-M-dd"),
enddate: this.datePipe.transform(selectInfo.end, "yyyy-M-dd"),
},
})
.afterClosed()
.subscribe((res) => {
// call getAllEvents() here
});
}
推荐阅读
- php - 避免出现在 Woocommerce 产品变体描述中的简短描述附加文本
- spring - Spring security 5.*.* 支持 OAuth 1.0
- javascript - 使用每个验证多个元素
- python - 每次我调整我的汽车的大小时,Pygame 的零件都会丢失,我该如何解决这个问题?
- google-cloud-platform - Apache NiFi - 自定义目录上的 PutGCSObject
- python - 我如何告诉服务器来自加密模块的公钥?
- python - 为什么用户在django中提交表单后退出?
- php - 仅在特定页面上从 WooCommerce 购物车中删除特定产品
- sapui5 - 如何在网格表中实现 P13nCoumnPanel?
- node.js - 尝试定义强错误处理程序时出现错误 TS2769(在 NodeJS 中使用环回框架)