Angular 角度:当我通过单击对话框外部关闭Mat对话框时,如何定义默认值
当通过单击对话框外部关闭对话框时,我希望发出一个默认值。目前,它发出Angular 角度:当我通过单击对话框外部关闭Mat对话框时,如何定义默认值,angular,Angular,当通过单击对话框外部关闭对话框时,我希望发出一个默认值。目前,它发出未定义的,这在许多情况下都可以,但是当通过单击外部中止对话框时,我想发出一个默认值。 我如何实现这种行为? 下面是一个实际的例子: 打开对话框 在对话框中键入somthing 再打开一次 在其外部单击并查看正在消失的值 我希望它表现如何? 当通过单击外部关闭对话框时,它应始终显示一些值。根据示例,您可以添加OR运算符: dialogRef.afterClosed().subscribe(result => {
未定义的
,这在许多情况下都可以,但是当通过单击外部中止对话框时,我想发出一个默认值。
我如何实现这种行为?
下面是一个实际的例子:
当通过单击外部关闭对话框时,它应始终显示一些值。根据示例,您可以添加OR运算符:
dialogRef.afterClosed().subscribe(result => {
console.log('The dialog was closed');
this.animal = result || defaultValue;
});
在该代码中,结果将自动被未定义的覆盖
dialogRef.afterClosed().subscribe(result => {
console.log('The dialog was closed');
if(!!result){
this.animal = result;
}
});
使用backdropClick observable,单击叠加背景时发射
然后使用MatDialogRef Instance访问close方法,该方法接受可选参数。用它来提供价值
试试这个
组件技术
dialogRef.backdropClick().subscribe(v=>{
dialogRef.close('Hello!');
});
dialogRef.afterClosed().subscribe(result => {
console.log('The dialog was closed');
this.animal = result;
});
这是我的解决方案,在Angular 9->
addNew() {
const dialogConfig = new MatDialogConfig();
dialogConfig.disableClose = true;
const dialogRef = this.dialog.open(AddDialogComponent, dialogConfig);
}是否可以在对话框中定义它?我不这样认为,因为传递数据的唯一方法是调用
dialogRef
的close()
函数。这并不能回答问题。不需要禁用关闭。
addNew() {
const dialogConfig = new MatDialogConfig();
dialogConfig.disableClose = true;
const dialogRef = this.dialog.open(AddDialogComponent, dialogConfig);