繁体   English   中英

Bootstrap 5 下拉菜单不适用于 angular 12

[英]Bootstrap 5 dropdown not working on angular 12

我正在尝试在 Angular12 中添加 bootstrap5 下拉菜单,但它不起作用。
我已经安装了所有必需的包,并将它们添加到angular.json文件中。
从 bootstrap5 文档中复制了确切的示例仍然无法正常工作。

angular.json我已经给出

 "styles": [
      "node_modules/bootstrap/dist/css/bootstrap.min.css"
    ],
 "scripts": [
      "node_modules/jquery/dist/jquery.min.js",
      "node_modules/popper.js/dist/umd/popper.min.js",
      "node_modules/bootstrap/dist/js/bootstrap.min.js"
   ]

下面是我的 html 代码(与 bootstrap 5 文档中的相同)

<div class="dropdown">
  <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data- 
bs-toggle="dropdown" aria-expanded="false">
Dropdown button
  </button>
  <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
    <li><a class="dropdown-item" href="#">Action</a></li>
    <li><a class="dropdown-item" href="#">Another action</a></li>
    <li><a class="dropdown-item" href="#">Something else here</a></li>
  </ul>
</div>

我使用命令 npm i 来安装软件包而没有提及任何版本名称,所以我猜已经安装了最新版本。 安装 jquery 作为最后的手段在某处读取引导程序 5 不需要 jquery。 任何帮助是极大的赞赏。

根据Bootstrap 5 (Separate section) ,Bootstrap 5需要 @popperjs/core不需要 popperjs 因此,您正在安装和导入错误的库。

仅供参考,Bootstrap 5 删除了对 jQuery 的依赖


方案一:安装@popperjs/core

  1. 通过 npm 安装@popperjs/core
npm install @popperjs/core
  1. @popperjs/core导入 angular.json。 Popper 必须首先出现(如果您使用的是工具提示或弹出框),然后是我们的 JavaScript 插件。

angular.json

"scripts": [
  "./node_modules/@popperjs/core/dist/umd/popper.min.js",
  "./node_modules/bootstrap/dist/js/bootstrap.min.js"
]

解决方案 2:将 Bootstrap 作为包导入

Bootstrap 包包括用于我们的工具提示和弹出框的 Popper。 因此您无需单独安装@popperjs/core

angular.json

"scripts": [
  "./node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"
]

解决方案 3:Angular Bootstrap

Angular Bootstrap Dropdown是另一个选项,它使 Bootstrap 在 Angular App 中工作。

  1. 安装Angular Bootstrap (NG Bootstrap)
npm install @ng-bootstrap/ng-bootstrap
  1. NgbModule添加到app.module.ts 导入部分
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';

@NgModule({
  imports: [.., NgbModule]
})
  1. 应用 Angular Bootstrap Dropdown 指令。
<div ngbDropdown class="dropdown">
  <button ngbDropdownToggle class="btn btn-secondary" type="button" id="dropdownMenuButton1" aria-expanded="false">
Dropdown button
</button>
  <ul ngbDropdownMenu aria-labelledby="dropdownMenuButton1">
    <li><a ngbDropdownItem href="#">Action</a></li>
    <li><a ngbDropdownItem href="#">Another action</a></li>
    <li><a ngbDropdownItem href="#">Something else here</a></li>
  </ul>
</div>

StackBlitz 上的示例解决方案 3

data-bs-toggle="dropdown"到链接或按钮以切换下拉列表

有关更多信息,请参阅引导程序文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM