R3InjectorError Нет поставщика для NgbDropdown - PullRequest
0 голосов
/ 19 марта 2020

У меня есть общий модуль 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 )

Что я делаю не так?

1 Ответ

0 голосов
/ 20 марта 2020

Оказывается, кто-то поместил Dropdown вместо ngbDropdown в один из компонентов.

Как я видел в некоторых других сообщениях, эта проблема обычно существует, если иерархия ngbDropdown-> ngbDropdownToggle-> ngbDropdownMenu не соблюдается.

...