使 Angular mat-dialog modal 监听键盘组合

Make Angular mat-dialog modal listen to keyboard combinations

我有一个对话框模态,里面有一个输入。

我会添加辅助功能。

我已经在使用 dialogRef.keydownEvents 了。

ngOnInit(): void {
  this.dialogRef.keydownEvents().subscribe(event => {
    if (event.key === "Escape") {
      this.cancel();
    }
    if (event.key === "Enter") {
      this.validate();
    }
  });
}

现在的问题是,当用户粘贴文本并按下 Enter 换行时,模式得到验证然后关闭。

我想让用户使用 shift+Enter 换行而不验证模态(因为 if (event.key === "Enter")

有办法吗?

可以的,试试这个:

if (event.key === "Enter" && !event.shiftKey) {
  event.preventDefault();
  
  this.validate();
}