Bootstrap 下拉菜单不显示项目
Bootstrap dropdown don't show items
我在我的项目中使用 angular 12,但我遇到了一个问题,bootstrap 的下拉菜单没有显示项目
我的 html 代码:
<nav class="navbar navbar-expand navbar-dark">
<a class="navbar-brand" routerLink="/">
<img src="assets/bot.png" alt="END Logo">
</a>
<div class="nav navbar-nav">
<a class="nav-item nav-link" routerLink="/commands" routerLinkActive="active">
<i class="fa fa-code" aria-hidden="true"></i>
</a>
<a class="nav-item nav-link" routerLink="/docs" routerLinkActive="active">
<i class="fa fa-book" aria-hidden="true"></i>
</a>
<a class="nav-item nav-link" [href]="githubURL" routerLinkActive="active">
<i class="fab fa-github" aria-hidden="true"></i>
</a>
<a class="nav-item nav-link" [href]="discordInvite" routerLinkActive="active">
<i class="fab fa-discord"></i>
</a>
</div>
<div class="nav navbar-nav ml-auto">
<div *ngIf="!user">
<a class="nav-item nav-link" routerLink="/login"><i class="fa fa-user" aria-hidden="true"></i> Login</a>
</div>
<div *ngIf="user">
<div class="dropdown">
<a class="nav-item nav-link dropdown-toggle"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img [src]="user.displayAvatarURL"> {{ user.username }}
</a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" routerLink="/dashboard">Dashboard</a>
<hr class="m-1">
<a class="dropdown-item" routerLink="/logout">Logout</a>
</div>
</div>
</div>
</div>
</nav>
我做错了什么,如何解决?
解决方案 1
Bootstrap 下拉菜单需要这 3 个依赖项:
- jQuery
- popper.js
- Bootstrap
第 1 步:使用以下命令将这 3 个依赖项安装到您的 Angular 应用程序中:
npm install jquery
npm install popper.js
npm install bootstrap
步骤 2:将这些 .js 文件添加到 angular.json scripts
部分 以便这 3 . js文件会被渲染成HTML.
angular.json
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/popper.js/dist/umd/popper.js",
"node_modules/bootstrap/dist/js/bootstrap.js"
]
解决方案 2
Angular Bootstrap Dropdown 也建议解决这个问题。
步骤 1:安装 Angular Bootstrap (NG Bootstrap).
npm install @ng-bootstrap/ng-bootstrap
步骤 2:将 NgbModule
添加到 app.module.ts imports
部分 .
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
@NgModule({
imports: [.., NgbModule],
..
})
步骤 3:将 Angular Bootstrap 下拉指令应用于下拉列表。
<div ngbDropdown class="nav-item">
<a ngbDropdownToggle id="dropdownMenuButton" class="nav-link" aria-haspopup="true" aria-expanded="false">
<img [src]="user.displayAvatarURL"> {{ user.username }}
</a>
<div ngbDropdownMenu aria-labelledby="dropdownMenuButton">
<a ngbDropdownItem routerLink="/dashboard">Dashboard</a>
<hr class="m-1">
<a ngbDropdownItem routerLink="/logout">Logout</a>
</div>
</div>
我在我的项目中使用 angular 12,但我遇到了一个问题,bootstrap 的下拉菜单没有显示项目 我的 html 代码:
<nav class="navbar navbar-expand navbar-dark">
<a class="navbar-brand" routerLink="/">
<img src="assets/bot.png" alt="END Logo">
</a>
<div class="nav navbar-nav">
<a class="nav-item nav-link" routerLink="/commands" routerLinkActive="active">
<i class="fa fa-code" aria-hidden="true"></i>
</a>
<a class="nav-item nav-link" routerLink="/docs" routerLinkActive="active">
<i class="fa fa-book" aria-hidden="true"></i>
</a>
<a class="nav-item nav-link" [href]="githubURL" routerLinkActive="active">
<i class="fab fa-github" aria-hidden="true"></i>
</a>
<a class="nav-item nav-link" [href]="discordInvite" routerLinkActive="active">
<i class="fab fa-discord"></i>
</a>
</div>
<div class="nav navbar-nav ml-auto">
<div *ngIf="!user">
<a class="nav-item nav-link" routerLink="/login"><i class="fa fa-user" aria-hidden="true"></i> Login</a>
</div>
<div *ngIf="user">
<div class="dropdown">
<a class="nav-item nav-link dropdown-toggle"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img [src]="user.displayAvatarURL"> {{ user.username }}
</a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" routerLink="/dashboard">Dashboard</a>
<hr class="m-1">
<a class="dropdown-item" routerLink="/logout">Logout</a>
</div>
</div>
</div>
</div>
</nav>
我做错了什么,如何解决?
解决方案 1
Bootstrap 下拉菜单需要这 3 个依赖项:
- jQuery
- popper.js
- Bootstrap
第 1 步:使用以下命令将这 3 个依赖项安装到您的 Angular 应用程序中:
npm install jquery
npm install popper.js
npm install bootstrap
步骤 2:将这些 .js 文件添加到 angular.json scripts
部分 以便这 3 . js文件会被渲染成HTML.
angular.json
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/popper.js/dist/umd/popper.js",
"node_modules/bootstrap/dist/js/bootstrap.js"
]
解决方案 2
Angular Bootstrap Dropdown 也建议解决这个问题。
步骤 1:安装 Angular Bootstrap (NG Bootstrap).
npm install @ng-bootstrap/ng-bootstrap
步骤 2:将 NgbModule
添加到 app.module.ts imports
部分 .
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
@NgModule({
imports: [.., NgbModule],
..
})
步骤 3:将 Angular Bootstrap 下拉指令应用于下拉列表。
<div ngbDropdown class="nav-item">
<a ngbDropdownToggle id="dropdownMenuButton" class="nav-link" aria-haspopup="true" aria-expanded="false">
<img [src]="user.displayAvatarURL"> {{ user.username }}
</a>
<div ngbDropdownMenu aria-labelledby="dropdownMenuButton">
<a ngbDropdownItem routerLink="/dashboard">Dashboard</a>
<hr class="m-1">
<a ngbDropdownItem routerLink="/logout">Logout</a>
</div>
</div>