【问题标题】:mat-dialog remember previous data on next openingmat-dialog 在下次打开时记住以前的数据
【发布时间】:2020-12-12 20:46:36
【问题描述】:

我使用 mat-dialog 时遇到了一个与保留先前打开的窗口中的数据有关的问题。

  • 打开添加记录时,该字段为空。

  • 但是,如果我为 edit 打开它,然后为 add 新记录打开它,它会保留之前打开的对话框中的数据。

所以,我想在对话框关闭事件中防止这种情况发生,但是我没有找到一种适当的方法来捕捉对话框关闭时的情况,除了以下由于我们的对话框模板的某些限制而无法使用的方法。

dialogRef.afterClosed().subscribe(result => {
    this.dataService.onSelectCustomer.next([]); 
});

那么,如何通过 mat-dialog 属性或捕获关闭事件来解决这个问题? 通过单击取消或在窗口外关闭对话框时触发事件也足够了

【问题讨论】:

    标签: javascript angular angular-material dialog modal-dialog


    【解决方案1】:

    对于那些可能遇到类似问题的人,我想分享一下我现在找到的解决方案:

    • 然后我们创建了一个 MatDialogConfig 实例,它将使用一组默认行为配置对话框

    • 我们正在覆盖其中一些默认行为。例如,我们将 disableClose 设置为 true,这意味着用户将无法仅通过单击对话框外部来关闭对话框

    • 我们还将 autoFocus 设置为 true,这意味着焦点将自动设置在对话框的第一个表单字段上

    openDialog() {
      const dialogConfig = new MatDialogConfig();
    
      dialogConfig.disableClose = true;
      dialogConfig.autoFocus = true;
    
      dialogConfig.data = {
          id: 1,
          title: 'Angular For Beginners'
      };
    
      this.dialog.open(CourseDialogComponent, dialogConfig);
    }
    

    【讨论】:

      猜你喜欢
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      相关资源
      最近更新 更多