【问题标题】:Parent component should be active when angular material dialog is open打开角度材料对话框时,父组件应处于活动状态
【发布时间】:2020-08-07 13:19:07
【问题描述】:

我在我的项目中实现了角度材质对话框,我还使对话框可拖动。一切正常。现在我有一个新要求,我应该在打开对话框时保持父组件处于活动状态。任何人都知道如何实现这一目标?

【问题讨论】:

  • 你可以尝试在打开方法中添加hasBackdrop:false吗?
  • 行得通。非常感谢!
  • 有什么方法可以只启用部分页面而禁用页面的其他部分?

标签: html angular angular-material


【解决方案1】:

您可以添加一个类以根据对话框禁用特定部分。

在您的组件中,您可以添加一个变量来标识对话框状态。

openDialog(): void {
this.dialogActive = true;
const dialogRef = this.dialog.open(DialogOverviewExampleDialog, {
  width: '250px',
  data: {name: this.name, animal: this.animal},
  hasBackdrop: false
});

dialogRef.afterClosed().subscribe(result => {
  this.dialogActive = false;
  console.log('The dialog was closed');
  this.animal = result;
});

} }

您可以根据对话框状态向 HTML 添加一个类。

<div [class.modal-page-disable]="dialogActive"> disable part </div>
<div> enable part </div>

然后最后添加样式以禁用该部分。

.modal-page-disable {
   pointer-events: none;
   background: transparent;
   opacity: 0.5;
}

您可以参考示例代码here。

【讨论】:

  • 这有帮助,谢谢。但不确定为什么 [class.modal-page-disable] 不适用于我的 div 。对我来说 [class.disabled]="dialogActive" 并添加 css .disabled { cursor: not-allowed;指针事件:无; } 解决了问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-14
  • 2018-02-16
  • 1970-01-01
  • 2019-09-16
  • 1970-01-01
  • 1970-01-01
  • 2019-01-19
相关资源
最近更新 更多