如何在执行函数后自动关闭 NbDialogModule?(不在背景点击上)

Qii*_*iia 0 angular nebular

我正在使用 Nebular Angular UI 库。我正在尝试不同的方法来找到关闭 NbDialogModule 的方法,但我无法到达任何地方!任何人都可以帮助我吗?这是我尝试过的方法之一:

 constructor( private dialogService:NbDialogService, private ref:NbDialogRef<DialogNamePromptComponent>)
Run Code Online (Sandbox Code Playgroud)

在我的班级组件中:

    close() {
    this.ref.close();
  }
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

core.js:6241错误错误:未捕获(承诺):NullInjectorError:R3InjectorError(ViewsModule)[NbDialogRef - > NbDialogRef - > NbDialogRef - > NbDialogRef]:NullInjectorError:没有NbDialogRef的提供者!NullInjectorError:R3InjectorError(ViewsModule)[NbDialogRef - > NbDialogRef - > NbDialogRef - > NbDialogRef]:NullInjectorError:没有NbDialogRef的提供者!

Jas*_*ite 5

您可以使用对话框参考关闭该对话框。如何获取对话框引用取决于您尝试从何处关闭对话框

从对话框中呈现的组件内部...

如果您尝试从对话框 ( ) 中呈现的组件内关闭对话框DialogNamePromptComponent,则可以在组件 ( ) 的构造函数中注入对话框引用DialogNamePromptComponent。然后您可以使用此引用来调用close().

export class DialogNamePromptComponent {
  constructor(private dialogRef: NbDialogRef) {}

  public closeDialog(): void {
    this.dialogRef.close();
  }
}
Run Code Online (Sandbox Code Playgroud)

从组件内打开对话框...

如果您想从打开对话框的组件内关闭对话框,您将使用open(...)对话框服务方法返回的对话框引用。

export class AppComponent {
  private dialogRef: NbDialogRef;

  constructor(private dialogService: NbDialogService) {}

  public openDialog(): void {
    // Open will return a dialog reference that we can use to close
    // the dialog from elsewhere.
    this.dialogRef = this.dialogService.open(DialogNamePromptComponent, { ... });
  }

  public closeDialog(): void {
    // We can use the dialog ref to close the dialog
    if (this.dialogRef) {
      this.dialogRef.close();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

https://akveo.github.io/nebular/docs/components/dialog/overview#nbdialogservice