Angular 2 Bootstrap (ngx-bootstrap/ng2-bootstrap) 下拉菜单不工作

Angular 2 Bootstrap (ngx-bootstrap/ng2-bootstrap) dropdown not working

我似乎只能在我的应用程序的一部分中使用 Angular Bootstrap 下拉菜单。我不确定为什么它在那里工作而不是在其他地方工作。在我的模块中,我使用 BsDropdownModule.forRoot() 进行导入,就像它工作的地方一样。我试过从他们的几个例子中粘贴到 HTML 中……没有。我知道我以前在那里工作过,不记得更改过任何与之相关的东西。

我没有收到任何错误,而且我不确定如何继续解决此问题。我注意到 ng2-bootstrap 的问题,所以我升级到 ngx-bootstrap。同样的问题。

我想通了这个问题。下拉菜单确实有效。问题在于,出于某种原因,.dropdownMenu 的 y 位置(顶部)将其放置在其所在容器的边界之外,无法看到它。我仍然不确定为什么会这样,但至少我有一些事情要做。

我能够在 bootstrap@4.0.0-alpha.5 上使用它,但是当我切换到 4.0.0-alpha.6 时,我无法让下拉菜单工作。 不确定出了什么问题,但我不得不通过添加到我的提供者来将 BsDropdownModule 添加到上下文中(我已经有了 BsDropdownModule.forRoot())....(不确定我最终破坏了什么的细节) .

但是发现将 BsDropdownModule 添加到我调用菜单的模块然后它起作用了。

确保您的 Angular 版本与 Bootstrap 版本兼容。它发生在我使用 Angular 4 和 ng2-bootstrap 1.6.x 时。 更好的是,您应该使用 ngx-bootstrap 而不是 ng2-bootstrap。要使下拉菜单正常工作,请添加容器属性:

<div class="btn-group" dropdown  container="body"></div>

您需要在 AppModule 导入中添加 BsDropdownModule.forRoot() 并在使用 bootstrap 下拉菜单的子模块中添加 BsDropdownModule(不是 .forRoot()!)