Return 来自 MatDialog 的值而不关闭它

Return value from MatDialog without closing it

我有这个提交功能,当用户在我的 MatDialog:

中提交一个值时,我会使用它
  submit() {
    this.dialogRef.close(this.name);
  }

我想在对话框中实现一个新按钮,'Submit and new',这样用户就可以添加另一个对象并提交它。

有没有办法在不关闭对话框的情况下 return 一个值,这样我就可以重置他的状态而不是一个新对象?

我认为没有,但您有三种解决方案:

  1. 使用服务来执行逻辑而不是使用 .close:逻辑将完成,对话框将保持打开状态。

  2. 像当前那样关闭对话框,执行您的逻辑,然后打开一个新对话框。

  3. 将您的逻辑负载放入一个数组中,直到用户完成为止。一旦他不要求“提交和新建”,而只是“提交”,就为数组的每个元素调用你的逻辑。

采取何种解决方案由您决定,但 3 种都可以接受,改变的因素只是用户体验。

(如你所知,我个人的解决方案是第三个)