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();
  }