gpt4 book ai didi

Angular 6 MatDialog取消关闭事件

转载 作者:行者123 更新时间:2023-12-03 16:04:35 24 4
gpt4 key购买 nike

我有两个组件:CustomerComponentCustomerCreateUpdateComponent .
CustomerComponent包括客户数据表。CustomerCreateUpdateComponent是一个带有用于创建/更新的输入控件的表单。

我有 mat-dialogCustomerCreateUpdateComponent在里面。
打开对话框并填写表格后,单击提交按钮和 this.dialogRef.close(customer);被执行。 customer对象具有所有值。

CustomerComponent我有 subscribethis.dialog.open(CustomerCreateUpdateComponent).beforeClose().subscribe((customer: Customer) => { ... });
它是 beforeClose()方法,所以在对话框关闭之前,我会返回 customer对象返回并将其发布到 api。

如果 POST 成功,一切正常,对话框关闭并更新数据表。

但是,如果 POST 没有成功,api 将返回一个错误,我想向用户显示该错误 保持对话框打开 ,类似于 if(error) { closeEvent.cancel() }
我已经查看了 mat-dialog 的整个文档,没什么帮助。我几乎可以肯定没有办法做到这一点。

也许有人有同样的问题?很高兴听到任何解决方法。

最佳答案

我解决了一个类似的问题,因为我希望在关闭之前弹出一个确认关闭警告,然后取消或延迟关闭直到它被确认。为了处理这个问题,我设置了 disableClose对话框上的选项为 true。我将我的 close 方法钩子(Hook)添加到了 backgroundClick 钩子(Hook)中,以便它以类似的方式运行。

this.dialogRef.backdropClick().subscribe(() => { this.close(); });
close()是我在对话框上处理关闭事件的方法。这只是打开一个确认框,如果答案是肯定的则关闭

close() {
this.confirm.open({ title: 'Would you like to acknowledge this message?' }).pipe(
tap(answer => { if (answer === true) { this.dialogRef.close(); } }),
).subscribe();
}

向关闭钩子(Hook)添加取消回调只是一种方便,这可能是他们尚未正确完成它的原因。

关于Angular 6 MatDialog取消关闭事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51686251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com