R3InjectorError没有NgbDropdown的提供者

时间:2020-03-19 17:33:30

标签: angular ng-bootstrap angular9 angular-ivy

我有一个共享模块A,在其中导入和导出NgbDropdownModule

import { ... NgbDatepickerModule, NgbDropdownModule, NgbModalModule ...} from '@ng-bootstrap/ng-bootstrap';

imports: [...NgbDropdownModule...]

exports: [...NgbDropdownModule...]

在模块B中,我只导入模块A,直到Angular 9,一切正常。 我使用了A中的组件,也直接使用了ngbDropdown。

升级到Angular 9之后,当模块B延迟加载时,出现以下错误:

错误NullInjectorError:R3InjectorError(BModule)[NgbDropdown-> NgbDropdown-> NgbDropdown-> NgbDropdown]: NullInjectorError:没有NgbDropdown提供程序! 在NullInjector.push ../ node_modules / @ angular / core / ivy_ngcc /fesm5/core.js.NullInjector.get(http://localhost:51000/vendor.js:60672:25) 在R3Injector.push ../ node_modules / @ angular / core / ivy_ngcc /fesm5/core.js.R3Injector.get(http://localhost:51000/vendor.js:71020:33) 在R3Injector.push ../ node_modules / @ angular / core / ivy_ngcc /fesm5/core.js.R3Injector.get(http://localhost:51000/vendor.js:71020:33) 在R3Injector.push ../ node_modules / @ angular / core / ivy_ngcc /fesm5/core.js.R3Injector.get(http://localhost:51000/vendor.js:71020:33) 在NgModuleRef $ 1.push ../ node_modules / @ angular / core / ivy_ngcc /fesm5/core.js.NgModuleRef$1.get(http://localhost:51000/vendor.js:84306:33) 在R3Injector.push ../ node_modules / @ angular / core / ivy_ngcc /fesm5/core.js.R3Injector.get(http://localhost:51000/vendor.js:71020:33) 在NgModuleRef $ 1.push ../ node_modules / @ angular / core / ivy_ngcc /fesm5/core.js.NgModuleRef$1.get(http://localhost:51000/vendor.js:84306:33) 在Object.get(http://localhost:51000/vendor.js:82620:35) 在getOrCreateInjectable(http://localhost:51000/vendor.js:63536:39) 在Module.ɵɵdirectiveInject(http://localhost:51000/vendor.js:73885:12

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

结果是,有人在其中一个组件中放置了Dropdown而不是ngbDropdown。

就像我在其他帖子上看到的那样,如果不尊重ngbDropdown-> ngbDropdownToggle-> ngbDropdownMenu的层次结构,通常会存在此问题。