使用 Component 作为对话框引用但并不总是如此

Using Component as dialog ref but not always

所以我有一个组件,有时用作对话框引用,有时在对话框外正常使用。

例如:

现在有时我在聊天组件(不是对话框)中渲染这个组件,有时我将这个组件单独渲染为对话框。

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

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

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

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

现在,当我在对话框外使用该组件时,这会导致问题,因为它说这个

ERROR Error: "No provider for MdDialogRef!"

是否可以只提供这个可选的,当它不存在时让它为空?

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

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