使用组件作为对话框参考,但不总是

时间:2019-09-18 12:23:48

标签: angular angular-material angular-components material-dialog

因此,我有一个组件,该组件有时用作对话框参考,有时通常在对话框外使用。

例如:

  • 答案为是或否的表格

现在有时我在聊天组件(不是对话框)中渲染此组件,有时我将自己作为对话框渲染。

现在,问题是我正在使用:

  constructor(
    private dialogRef: MdDialogRef<PaymentFormComponent>
  ) {
  }

在构造函数中,因为我希望能够在事件发生时手动关闭对话框:

    if (this.dialogRef) {
      this.dialogRef.close();
    }

现在,当我在对话框外使用组件时,这会引起问题,因为它是这样说的

ERROR Error: "No provider for MdDialogRef!"

是否可以仅选择性地提供此选项,并且不存在时为null?

1 个答案:

答案 0 :(得分:2)

我认为@Optional装饰器会解决您的问题

    @Optional()private dialogRef: MdDialogRef<PaymentFormComponent>
  ) {
  }