I'm using Bootstrap's navbar and I can get it to collapse successfully by using data-toggle
and data-target
on each li
element.
This SO answer shows a way to do this without having to alter each li
:
https://stackoverflow.com/a/42401686/279516
This is my navbar with two of the li
elements:
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item" data-toggle="collapse" data-target=".navbar-collapse.show">
<a class="nav-link" href="#" routerLink="/servers">Servers</a>
</li>
<li class="nav-item" data-toggle="collapse" data-target=".navbar-collapse.show">
<a class="nav-link" href="#" routerLink="/servers">Variables</a>
</li>
I'm close to getting this done in my Angular 8 Typescript file:
export class AppComponent implements OnInit {
ngOnInit(): void {
const navbarItems = document.querySelectorAll('.navbar-nav>li');
navbarItems.forEach(navbarItem => {
navbarItem.addEventListener('click', () => {
const navbar = document.querySelector('.navbar-collapse').collapse('hide');
})
});
}
}
The issue is the last line:
Property
collapse
does not exist on typeelement
.
First, what should I do to get this to work? Second, is there a better way?
I've tried casting navbar
as different types of HTML elements, but that doesn't work either.