Вот, пожалуйста ...
Я сделал следующие изменения -
1.app.component.html
<p>
Start editing to see some magic happen :)
</p>
<nav class="navbar bg-light navbar-light navbar-expand">
<ul class="nav navbar-nav">
<li class="dropdown" appDropdown>
<a href="#" class="dropdown-toggle" role="button">Page1</a>
<ul class="dropdown-menu">
<li><a href="#">Page1.1</a></li>
<li><a href="#">Page1.2</a></li>
<li><a href="#">Page1.3</a></li>
</ul>
</li>
<li><a class="nav-link" href="#">Page2</a></li>
</ul>
</nav>
2.app.module.ts
Я добавил одну директиву для прослушивания события щелчка для выпадающего списка и импортировал ее в app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
import { HelloComponent } from './hello.component';
import { DropdownDirective } from './dropdown.directive';
@NgModule({
imports: [ BrowserModule, FormsModule ],
declarations: [ AppComponent, HelloComponent, DropdownDirective ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
3.dropdown.directive.ts
Добавлена директива для прослушивания события щелчка
import { Directive, HostListener, ElementRef, Renderer2 } from "@angular/core";
@Directive({
selector: '[appDropdown]'
})
export class DropdownDirective {
manageDropdown : boolean = false;
constructor(private elementRef: ElementRef, private renderer: Renderer2) {
}
@HostListener('click') openDropdown(eventData: Event) {
if(!this.manageDropdown) {
this.renderer.addClass(this.elementRef.nativeElement,'open');
this.manageDropdown = !this.manageDropdown;
} else {
this.renderer.removeClass(this.elementRef.nativeElement, 'open');
this.manageDropdown = !this.manageDropdown;
}
}
}
4.angular.json
Запрос на выполнение "npm install --save bootstrap @ 3" и внесение следующих изменений в файл angular.json.
"styles": [
"src/styles.css",
"../node_modules/bootstrap/dist/css/bootstrap.min.css"
],
"scripts": [
"../node_modules/bootstrap/dist/js/bootstrap.min.js"
]
Примечание -Для справки перейдите по ссылке ссылка .Вы можете увидеть раскрывающееся демо.