No provider for NgbDropdown with Angular Bootstrap
Solution 1
Make sure your HTML markup has the ngbDropdown
attribute on ngbDropdownToggle
and ngbDropdownMenu
parent.
<div ngbDropdown> <!-- **here** -->
<button class="btn btn-outline-primary"
id="dropdownBasic1" ngbDropdownToggle>Toggle dropdown</button>
<div ngbDropdownMenu>
<button ngbDropdownItem>Action - 1</button>
<button ngbDropdownItem>Another Action</button>
<button ngbDropdownItem>Something else is here</button>
</div>
</div>
Solution 2
As provided by @robert, with the official example, the issue is that the pulldown menu html must not be directly in the app.component.html. If placed there, the stated error appears.
I am not sure if placing the pulldown menu html in its own component is the only solution, but it is the difference between working and not working for my situation. I was unable to place the content found in the dropdown-basic.html into the app.component.html without encountering the issue.
I would suggest to the authors of angular bootstrap that the required usage be placed directly in the documentation. As it is now, it is not explicit. The official example simply appears as one way to use the code.
Related videos on Youtube
Jason K.
I am full range senior technologist with skills ranging from low level hardware development to telecommunications to big data analysis and machine learning. I have driven software and hardware products from the concept stage through to certification, trials, deployment and ongoing maintenance. Envisioning meaningful solutions that make things better and driving them to fruition is what drives me.
Updated on January 10, 2020Comments
-
Jason K. over 4 years
I am attempting to use the NbgDropdown in an app and I get the following error:
NullInjectorError: No provider for NgbDropdown!
My app.module file looks as follows:
import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; ... NgModule({ declarations: [ ... ], imports: [ ... NgbModule.forRoot() ], providers: [ ... ], bootstrap: [AppComponent] })
From other answers, this looks like what should be required
I saw the following terse comment that might help, but it is not meaningful to me:
-
robert about 5 yearsCheck the official example here: stackblitz.com/angular/kopbjmkbmabn?file=app%2Fapp.module.ts
-
Jason K. about 5 yearsSo, is the trick that the menu needs to be its own component? I am attempting to put the code in app.component.html and then hit the problem.
-
Suresh Kumar Ariya about 5 yearstry clearing 'npm cache clean --force' then delete 'package.lock' and do 'npm install'
-
Suresh Kumar Ariya about 5 yearsTry moving dropdown code to another component and try
-
Jason K. about 5 yearsThanks for the help, the issue is described in my answer.
-
-
Bilal about 2 yearsYES, we cannot have ngbDropdownMenu or ngbDropdownToggle component without a parent ngbDropdown component. github.com/ng-bootstrap/ng-bootstrap/issues/…