尝试移植 ng-bootstrap 示例,但 ngbDropdownToggle 工作正常

Trying to port ng-bootstrap example, but ngbDropdownToggle working

我是 Angular 和 Bootstrap 的新手,所以如果这个问题有点基础且范围有点广,请提前致歉。

出于 testing/learning 目的,我正在尝试将 https://ng-bootstrap.github.io/#/components/dropdown/examples 中的 "Mixed menu items and form 'Toggle Dropdown'" Stackblitz 示例移植到我的新项目中,同时我可以将 HTML渲染,我无法让下拉按钮切换。

我尝试了两种方法:

  1. 我创建了一个项目,然后将 Stackblitz 集合中的相关 src/app 文件复制到项目的 src/app 文件夹中(即 app.component.htmlapp.component.tsapp.module.tsdropdown-form.htmldropdown-form.ts)。在这种方法下,HTML 呈现但下拉菜单没有切换。

  2. 作为第二次尝试,我尝试将整个 Stackblitz 集合复制到它自己的文件夹中,并尝试 运行 ng serve 在上面。在这种方法下,没有编译任何东西,并且有很多错误消息,以 Could not find module "@angular-devkit/build-angular" . . .

  3. 开头

我有一个特别的问题是 ngbDropdownToggle 指令在哪里?

即来自 dropdown-form.html:

<button class="btn btn-outline-primary" id="dropdownForm1" ngbDropdownToggle>Toggle dropdown</button>

在 Stackblitz 上,我注意到 package.json 中存在 "@ng-bootstrap/ng-bootstrap" 的依赖项,想知道 ngbDropdownToggle 指令是否存在于此,但是当我尝试将该依赖项添加到 package.json 文件时在我原来的项目中,编译器抱怨:Module not found: Error: Can't resolve '@ng-bootstrap/ng-bootstrap'。我的工作假设是我的原始项目缺少一些关键 ng-bootstrap imports/functionality,但我不确定这是否正确,如果是这样,我如何添加必要的 imports/functionality?

如果有人知道我如何移植 Stackblitz 文件并使下拉切换起作用,请提前致谢。 . .

要让它在 stackblitz 上运行,您需要添加一个依赖项 @ng-bootstrap/ng-bootstrap(查看下面的屏幕截图)

要让它在您的 PC 上运行,您需要 npm install --save @ng-bootstrap/ng-bootstrap

此外,你需要 css <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" /> index.html

working demo