javascript - Uncaught Error : Can't resolve all parameters for 'ComponentName' : ([object Object],?)

标签 javascript angular typescript bootstrap-modal angular-components

不知道为什么会报错

compiler.js:2175 Uncaught Error: Can't resolve all parameters for ClauseListComponent: ([object Object], ?).
at syntaxError (compiler.js:2175)
at CompileMetadataResolver._getDependenciesMetadata (compiler.js:20399)
at CompileMetadataResolver._getTypeMetadata (compiler.js:20294)
at CompileMetadataResolver.getNonNormalizedDirectiveMetadata (compiler.js:19923)
at CompileMetadataResolver._getEntryComponentMetadata (compiler.js:20494)
at compiler.js:20486
at Array.forEach (<anonymous>)
at CompileMetadataResolver._getEntryComponentsFromProvider (compiler.js:20485)
at compiler.js:20456
at Array.forEach (<anonymous>)

我正在尝试使用 ngbModal,这是我目前所做的。

clause.module.ts

import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
@NgModule({
  declarations: [ModuleListComponent,ClauseListComponent,ModifyClauseComponent],
  imports: [
    NgbModule

clauselist.html

<ng-template #content let-modal >
    <div class="modal-header">
        <h4 class="h4Header" id="modal-basic-title">Title</h4>
        <button type="button" class="close" aria-label="Close" (click)="modal.dismiss('Cross click')">
        <span aria-hidden="true">×</span>
        </button>
    </div>
    <div class="modal-body">
                        CheckMate!     
    </div>
    <div class="modal-footer">
        <button mat-flat-button class="text-btn" (click)="modal.close('Save click')">ENROLL NOW</button> 
        <button mat-flat-button class="text-btn" (click)="modal.close('Save click')">Later</button> 
    </div>
</ng-template>
<button mat-flat-button class="primary-btn marR16" (click)="open(content)">Modal dialog</button>

.ts文件

import {NgbModal} from '@ng-bootstrap/ng-bootstrap';

constructor(private service : OfferClauseService,private modalService: NgbModal) { }
 open(content) {
    this.modalService.open(content,{windowClass:'custom_modal'})
  }

配置

    "lib": [
      "es2018",
      "dom"
    ]

指望你们!请询问是否需要更多说明。

最佳答案

您需要将其导入到您的 NgModule 中,而不是将其注入(inject)到您的组件中。

import { ModalModule } from 'ngb-modal';

@NgModule({
  imports: [
    ...
    ModalModule,
  ],

从构造函数中删除 private modalService: NgbModal:

constructor(private service : OfferClauseService,private modalService: NgbModal) { }

而是添加 ModalManager:

export class YourComponent {
    @ViewChild('myModal') myModal;
    private modalRef;
    constructor(private modalService: ModalManager){}

    openModal(){
        this.modalRef = this.modalService.open(this.myModal, {
        ...
        })
    };
    ...

    closeModal(){
        this.modalService.close(this.modalRef);
        //or this.modalRef.close();
    }
}

引用:https://www.npmjs.com/package/ngb-modal

关于javascript - Uncaught Error : Can't resolve all parameters for 'ComponentName' : ([object Object],?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59250853/

相关文章:

javascript - 在 React 中处理多个导入的有效方法

javascript - 使用 jsPDF && jsPDF AutoTable 仅将特定的 HTML 表格列转换为 PDF

javascript - 通过从用户处获取输入 1 或 2 并单击输入按钮,模型应根据输入进行更改

javascript - 编写可缩放多列布局的首选方式是什么?

angular - 无效字符错误 Angular

java - 将重定向从服务器发送到 Angular

angular - 如何在 Firebase 中部署 Angular 通用渲染?

typescript - 根据判别器的子集获取判别联合的子集

TypeScript 高级类型 - 泛型函数内出现无法访问错误的问题

javascript - Renderer2 错误 - id 与任何元素都不匹配