ng-bootstrap: NullInjectorError: No provider for NgbModalRef issue
ng-bootstrap: NullInjectorError: No provider for NgbModalRef issue
我正在尝试将 NgbModalRef class 添加到我的组件中,但我不知道为什么它拒绝注入它。
我有 Angular 10.2.1、bootstrap 4.5.3 和 ng-bootstrap 8.0.4,我在 app.module 文件中添加了 NgbModule 并导入了 class 像这样:
modal.ts
import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';
constructor(private modalService: NgbModal, private modalRefService: NgbModalRef){}
HTML 模态
<button (click)="modalRefService.close()">Close</button>
我尝试创建一个函数然后调用 class 但结果相同。
当我尝试打开我的模式时,我得到:
ERROR NullInjectorError: R3InjectorError(AppModule)[NgbModalRef -> NgbModalRef -> NgbModalRef]: NullInjectorError: No provider for NgbModalRef!
app.module.ts
@NgModule({
declarations: [
AppComponent,
ModalComponent
],
imports: [
BrowserModule,
AppRoutingModule,
HttpClientModule,
FormsModule,
NgbModule
],
组件是否在app.module中声明?如果不是,则必须在声明此组件的模块中导入 NgbModalRef。
我找到了解决方案,我删除了 NgbModalRef 并在 dependecies 中添加了 NgbActiveModal
constructor(
private modalService: NgbModal, private activeModalService: NgbActiveModal )
{}
然后我把函数移到了TS文件中
closeModal() {
this.activeModalService.close();
}
我正在尝试将 NgbModalRef class 添加到我的组件中,但我不知道为什么它拒绝注入它。 我有 Angular 10.2.1、bootstrap 4.5.3 和 ng-bootstrap 8.0.4,我在 app.module 文件中添加了 NgbModule 并导入了 class 像这样:
modal.ts
import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';
constructor(private modalService: NgbModal, private modalRefService: NgbModalRef){}
HTML 模态
<button (click)="modalRefService.close()">Close</button>
我尝试创建一个函数然后调用 class 但结果相同。
当我尝试打开我的模式时,我得到:
ERROR NullInjectorError: R3InjectorError(AppModule)[NgbModalRef -> NgbModalRef -> NgbModalRef]: NullInjectorError: No provider for NgbModalRef!
app.module.ts
@NgModule({
declarations: [
AppComponent,
ModalComponent
],
imports: [
BrowserModule,
AppRoutingModule,
HttpClientModule,
FormsModule,
NgbModule
],
组件是否在app.module中声明?如果不是,则必须在声明此组件的模块中导入 NgbModalRef。
我找到了解决方案,我删除了 NgbModalRef 并在 dependecies 中添加了 NgbActiveModal
constructor(
private modalService: NgbModal, private activeModalService: NgbActiveModal )
{}
然后我把函数移到了TS文件中
closeModal() {
this.activeModalService.close();
}