У меня есть общий модуль A, где я импортирую и экспортирую NgbDropdownModule
import { ... NgbDatepickerModule, NgbDropdownModule, NgbModalModule ...} from '@ng-bootstrap/ng-bootstrap'; imports: [...NgbDropdownModule...] exports: [...NgbDropdownModule...]
В модуле BI просто импортируйте модуль A и до Angular 9 все работало нормально. Я использовал компоненты из A, но также напрямую из ngbDropdown.
После обновления до Angular 9 я получаю следующую ошибку, когда модуль B загружается с отложенной загрузкой:
ERROR NullInjectorError: R3InjectorError (BModule) [ NgbDropdown -> NgbDropdown -> NgbDropdown -> NgbDropdown]: NullInjectorError: Нет поставщика для NgbDropdown! в NullInjector.pu sh .. / node_modules/@angular/core/ivy_ngcc/fesm5/core.js.NullInjector.get (http://localhost: 51000 / vendor . js: 60672: 25 ) на R3Injector.pu sh .. / node_modules/@angular/core/ivy_ngcc/fesm5/core.js.R3Injector. получить (http://localhost: 51000 / поставщик. js: 71020: 33 ) на R3Injector.pu sh .. / node_modules / @ angular / core / ivy_ng cc / fesm5 / core. js .R3Injector.get (http://localhost: 51000 / vendor. js: 71020: 33 ) в R3Injector.pu sh .. / node_modules / @ angular /core/ivy_ngcc/fesm5/core.js.R3Injector.get (http://localhost: 51000 / vendor. js: 71020: 33 ) в NgModuleRef $ 1.pu sh .. / node_modules/@angular/core/ivy_ngcc/fesm5/core.js.NgModuleRef$1.get (http://localhost: 51000 / vendor . js: 84306: 33 ) в R3Injector.pu sh .. / node_modules/@angular/core/ivy_ngcc/fesm5/core.js.R3Injector. получить (http://localhost: 51000 / поставщик. js: 71020: 33 ) в NgModuleRef $ 1.pu sh .. / no de_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 )
Что я делаю не так?
Оказывается, кто-то поместил Dropdown вместо ngbDropdown в один из компонентов.
Как я видел в некоторых других сообщениях, эта проблема обычно существует, если иерархия ngbDropdown-> ngbDropdownToggle-> ngbDropdownMenu не соблюдается.