6

是 stackblitz 中的一个空白 Angular 7 项目,在我使用的 Angular 6 中constructor(private bsModalRef: BsModalRef),我可以将值传递给我的子弹出组件。

但是当我更新到 Angular 7 时,它说Module not found: Error: Can't resolve 'ngx-bootstrap/modal/bs-modal-ref.service'.

在 stackblitz 中,它要求我安装 ngx-bootstrap,但我已经安装了。

任何想法?

4

3 回答 3

12

首先是你需要改变你的进口app.component.ts

从'ngx-bootstrap/modal/bs-modal-ref.service'导入{BsModalRef};

从'ngx-bootstrap'导入{BsModalRef};

那么您将不得不在app.module

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { BsModalRef } from 'ngx-bootstrap';

import { AppComponent } from './app.component';
import { HelloComponent } from './hello.component';
import { ModalModule } from 'ngx-bootstrap/modal';
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';

@NgModule({
  imports:      [ BrowserModule, FormsModule,ModalModule.forRoot(),
  BsDropdownModule.forRoot() ],
  declarations: [ AppComponent, HelloComponent ],
  bootstrap:    [ AppComponent ],
  providers: [BsModalRef]
})
export class AppModule { }

工作堆栈闪电

于 2018-11-09T17:45:04.727 回答
1

Please

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

and inject the BsModalService as a dependency.

于 2019-04-24T13:45:19.217 回答
0

根据此处的文档,您需要将 注入BsModalService作为依赖项。但是你在注入BsModalRef.

这是正确的语法:

import { BsModalService } from 'ngx-bootstrap/modal';
import { BsModalRef } from 'ngx-bootstrap/modal/bs-modal-ref.service';
...
modalRef: BsModalRef;
constructor(private modalService: BsModalService) {}

openModal(template: TemplateRef<any>) {
  this.modalRef = this.modalService.show(template);
}

这是您的参考的工作 StackBlitz 示例

于 2018-11-09T17:41:37.480 回答