NullInjectorError: No provider for NbDialogRef! in Nebular Dialog Service
NullInjectorError: No provider for NbDialogRef! in Nebular Dialog Service
我正在使用 NbDialogService,我正在通过 NbDialogService 打开一个组件,在我已经初始化的对话框组件上 Nbdialogref private dialogref: NbDialogRef<AddContactComponent>
。现在我也想打开那个没有对话框的组件,所以当我打开它时我得到这些错误 NullInjectorError: No provider for NbDialogRef!
。知道如何在对话框中打开一个组件,以及如何使用导航或路由打开相同的组件
您需要在构造函数中注入 NbDialogService,而不是 NgbDialogRef。 dialogRef 是一个简单的变量 - 通常您需要使用属于组件的变量,只是函数“open”中的常量“
constructor(private dialogService: NbDialogService){}
打开组件
const dialogref=this.dialogService.open(YourComponent, {
context: {
title: 'This is a title passed to the dialog component',
})
dialogref.onClose.subscribe(name => name && this.names.push(name));
尝试在构造函数中使用@Optional() 表示不需要该服务。
constructor(@Optional() private dialogRef: NbDialogRef<any>) {}
注:-
我在两个地方使用相同的组件时使用了这个
- 普通组件页面
- 作为模型页面
我正在使用 NbDialogService,我正在通过 NbDialogService 打开一个组件,在我已经初始化的对话框组件上 Nbdialogref private dialogref: NbDialogRef<AddContactComponent>
。现在我也想打开那个没有对话框的组件,所以当我打开它时我得到这些错误 NullInjectorError: No provider for NbDialogRef!
。知道如何在对话框中打开一个组件,以及如何使用导航或路由打开相同的组件
您需要在构造函数中注入 NbDialogService,而不是 NgbDialogRef。 dialogRef 是一个简单的变量 - 通常您需要使用属于组件的变量,只是函数“open”中的常量“
constructor(private dialogService: NbDialogService){}
打开组件
const dialogref=this.dialogService.open(YourComponent, {
context: {
title: 'This is a title passed to the dialog component',
})
dialogref.onClose.subscribe(name => name && this.names.push(name));
尝试在构造函数中使用@Optional() 表示不需要该服务。
constructor(@Optional() private dialogRef: NbDialogRef<any>) {}
注:-
我在两个地方使用相同的组件时使用了这个
- 普通组件页面
- 作为模型页面