0

我正在尝试使用此“BsModalService”打开模式,但出现以下错误。

compiler.js:485 Uncaught Error: Can't resolve all parameters for AppComponent: (?, [object Object], [object Object]).

这是我的组件。

import { Component, ViewChild, HostListener, OnInit, Inject, ElementRef, TemplateRef } from '@angular/core';
import { DOCUMENT } from '@angular/platform-browser';
import { WINDOW } from "../providers/window.service";

import { BsModalService } from 'ngx-bootstrap/modal';
import { BsModalRef } from 'ngx-bootstrap/modal/bs-modal-ref.service';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})

export class AppComponent {
  title = 'app';
  isCollapsed: boolean;
  magicHeight: number;
  invertNavBar: boolean = false;
  modalRef: BsModalRef;
  @ViewChild('navBar') navBarElementView: ElementRef;
  @ViewChild('funcionalidades') funcionalidadeselementView: ElementRef;

  constructor(
    private modalService: BsModalService,
    @Inject(DOCUMENT) private document: Document,
    @Inject(WINDOW) private window

  ) {

  }
}

这里是我的模块。

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { CollapseModule } from 'ngx-bootstrap/collapse';
import { CarouselModule } from 'ngx-bootstrap/carousel';
import { ModalModule } from 'ngx-bootstrap/modal';
import { ModalPrincipalComponent} from '../components/modal_principal/modal_principal.component';

import { AppComponent } from './app.component';
import { WINDOW_PROVIDERS } from "../providers/window.service";

@NgModule({
  declarations: [
    AppComponent,
    ModalPrincipalComponent
  ],
  imports: [
    BrowserModule,
    ModalModule.forRoot(),
    CollapseModule.forRoot(),
    CarouselModule.forRoot()
  ],
  providers: [WINDOW_PROVIDERS],
  bootstrap: [AppComponent]
})
export class AppModule { }

有趣的是,如果我在构造函数中添加 modalService 作为最后一个参数,我不会收到此错误,但仍然没有注入服务,变量值变得未定义。

图书馆一般都在工作,我使用轮播和折叠模块没有任何问题。

我已经尝试删除 node_modules 文件夹并重新安装它,但没有解决问题。

4

3 回答 3

0

您需要导入NgbModule并将其添加到导入中

import {NgbModule} from '@ng-bootstrap/ng-bootstrap';
于 2018-02-16T12:32:02.417 回答
0

代替

import { BsModalService } from 'ngx-bootstrap/modal';
import { BsModalRef } from 'ngx-bootstrap/modal/bs-modal-ref.service';

可以直接写

 import { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';

解决这个问题你需要做的是在你的app.module.ts

import { ModalModule, BsModalRef } from 'ngx-bootstrap/modal';

     imports: [
        ModalModule.forRoot()
   ],
     providers: [
        BsModalRef
   ],

我希望这能帮到您。

因为它对我有用。

于 2019-01-16T05:53:59.657 回答
0

尝试将静态字段添加到您的 AppComponent 中,如下所示

export class AppComponent {
...
static parameters = [BsModalService];

constructor(private modalService: BsModalService)
于 2018-11-27T16:13:14.620 回答