- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发通过Electron 2.0.5编译的Angular 5应用程序。我正在使用MatDialogRef
来获取用户输入(Yes
或No
),并使用响应来控制一些业务逻辑。显示MatDialogRef
后,我无法关闭它。
对话框的HTML引用:confirm.component.html
<div class="confirm">
<h1 mat-dialog-title>Confirm</h1>
<div mat-dialog-content>
{{dialogData.message}}
</div>
<div mat-dialog-actions>
<button mat-button [mat-dialog-close]="'cancel'" (click)="close()">No</button>
<button mat-button [mat-dialog-close]="'yes'" cdkFocusInitial (click)="close()">Yes</button>
</div>
</div>
import { Component, OnInit, Inject } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
@Component({
selector: 'app-confirm',
templateUrl: './confirm.component.html',
styleUrls: ['./confirm.component.scss']
})
export class ConfirmComponent implements OnInit {
dialogData: any;
constructor(private dialogRef: MatDialogRef<ConfirmComponent>,
@Inject(MAT_DIALOG_DATA) private data: any) {
this.dialogData = data;
}
ngOnInit() {
}
close() {
this.dialogRef.close();
}
}
...
const dialogRef = this.matDialog.open(ConfirmComponent, {
data: {
message: 'Yes or No?'
}
});
return dialogRef.afterClosed()
.switchMap(result => {
if (result !== 'cancel') {
// Do something
} else {
// Do something
}
});
...
最佳答案
看来,您的代码缺少订阅:
dialogRef.afterClosed().subscribe(result => {
console.log(`Dialog result: ${result}`);
});
switchMap
替换
subscribe
mat-dialog-close
指令:
<div mat-dialog-actions>
<button mat-button (click)="close(false)">No</button>
<button mat-button (click)="close(true)">Yes</button>
</div>
close(clickResult: boolean): void {
this.matDialogRef.close(clickResult);
}
dialogRef.afterClosed().subscribe(
data => console.log("Dialog output:", data)
);
关于angular - 在 Electron 中关闭MatDialogRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56736277/
我有一个应用程序,我在其中使用 MatDialogRef 将组件作为对话框打开。 对话框显示了很长的文本,但由于某种原因,文本区域滚动到了底部。当它不是动态创建的组件时,不会发生这种情况。 这是一个例
我有一个 DialogComponent,它具有以下构造函数,其中 Dialog 是自定义对象: constructor( public dialogRef: MatDialogRef,
我正在使用 MatDialogRef为了从组件调用模态。 关闭 ModalComponent 时,我尝试取回数据,但是 似乎什么都回不去了。 dialogRef = dialog.open(Modal
我有一个服务电话要检索一些项目数据。我正在使用 MatSnackbar。 但我想在出现问题时显示对话框消息。例如网络已关闭。 所以在谷歌浏览器中,我选择离线选项。然后我想看到对话框。 但是对话框没有出
我正在做一个 Angular 模态应用程序。我从 Angular 官方网站复制了代码,但这在我的系统中不起作用。这段代码在 plunker 中完美运行。请告诉我错误提前谢谢。 我的 app.modul
我使用的是 Material 2 版本 2.0.0-beta.12。我需要调整 Material 模态的位置。我按照这个答案来做到这一点。 https://stackoverflow.com/a/44
我正在使用一个组件作为通过路由到达的常规组件,但我希望它在使用注入(inject)组件时也将其用作模式对话框的“目标”: export class Component1 implements OnIn
我有一个函数可以打开一个带有名为“NoteFormComponent”的组件的 MatDialog,它看起来像这样 openForm() { let dialogConfig = new
我正在使用 Angular 4,我正在尝试设置 Material 包,在这里我尝试尝试对话框,但它不起作用,可能是因为我不确定 Material 包。 这是我的(dialog.components.t
我无法按照文档中的描述注入(inject) MatDialogRef:https://material.angular.io/components/dialog/overview 当我尝试这样做时出现
我熟悉这个错误,但我是在更新到 Angular Material 6.4.7 后才开始看到这个错误的。 我所有的模块都引用我自己的 MaterialModule,它导出 MatDialogModule
我正在尝试将 Angular Material 集成到 Angular 中,但出现以下错误。程序编译成功,但在浏览器中出现此问题。 Uncaught Error: Unexpected value '
我是 Angular 开发的新手,对使用 jasmine 进行单元测试更陌生。我已经创建了一个组件来使用来自@angular/material 的 Angular Material MatDialog
我是一名优秀的程序员,十分优秀!