gpt4 book ai didi

Angular Material Dialog -> afterClosed -> 按下了哪个按钮

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

我在我的应用程序和 Angular Material 对话框中使用了 Angular Material。
关闭对话框后,应根据单击的按钮执行操作 A 或操作 B:

dialogRef.afterClosed().subscribe(() => {
// if close button was clicked do action A
// if other button was clicked do action B
})

是否有可能检测在 afterClosed 方法中单击了哪个按钮?

最佳答案

您可以关闭带有自定义数据的对话框。像这样:

在您的对话框组件中:

@Component({/* ... */})
export class YourDialog {
constructor(public dialogRef: MatDialogRef<YourDialog>) { }


closeA() {
this.closeDialog('A')
}

closeB() {
this.closeDialog('B');
}

closeDialog(button: 'A' | 'B') {
this.dialogRef.close(button);
}
}

像这样处理关闭:
dialogRef.afterClosed().subscribe(result => {
if (result === 'A') {
// handle A button close
}

if (result === 'B')
// handle B button close
}
});

afterClosed()是一个 observable,您可以过滤此流以创建更具声明性的解决方案:
const closedA$ = dialogRef.afterClosed().pipe(filter(result => result === 'A'));
const closedB$ = dialogRef.afterClosed().pipe(filter(result => result === 'B'));

closedA$.subscribe( // handle A);
closedB$.subscribe( // handle B);

关于Angular Material Dialog -> afterClosed -> 按下了哪个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49734540/

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