Dropdown Bootstrap 4 在 angular 应用程序的生产中不起作用

boh*_*eek 5 html bootstrap-4 angular angular8

我在我的 angular 应用程序中使用 bootstrap 4,下拉功能在模式开发人员中完美运行,但在生产模式下,我收到此错误:

未捕获的错误:DROPDOWN:选项“popperConfig”提供了类型“window”但预期类型为“(null|object)”。
在 Object.typeCheckConfig (vendors.e5434761d9d5f5d91054.bundle.js:1)
at et_getConfig (vendors.e5434761d9d5f5d91054.bundle.js:1)
在新 e (vendors.e5434761d9d5f5d91054.bundle.js:1)
at HTML5434761dbundle.js : HTML5Button (vendors.e5434761d9d5f5d91054.bundle.js:1)

这是我在我的应用程序中使用的代码

<div class="dropdown">

  <button class="btn btn-secondary dropdown-toggle" type="button" 
    id="dropdown-search" data-toggle="dropdown"
    aria-haspopup="true" aria-expanded="false">

    Fiches consultées
  </button>

  <div class="dropdown-menu dropdown-filter filter-menu" 
    aria-labelledby="dropdown-search">

    <div *ngFor="let h of historiques" class="form-check">

      <input class="form-check-input" id="{{h.name}}" type="checkbox"
        value="{{h.name}}" [(ngModel)]="h.selected" 
        (change)="getSelected()">

      <label class="form-check-label" for="{{h.name}}">
        {{h.code}}
      </label>
    </div>
  </div>
</div> 
Run Code Online (Sandbox Code Playgroud)

Knn*_*ulf 8

问题出在 bootstrap 4.4+ 版本上,更改为 bootstrap 4.3.1 即可正常工作。

您可以从 npm 安装它,然后将路径添加到 angular.json 文件(样式和脚本配置)中:

npm install bootstrap@4.3.1
Run Code Online (Sandbox Code Playgroud)

或在您的 index.html 中使用网址

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

  • 您不能再降级了。已在 4.5.0 中修复(https://github.com/twbs/bootstrap/pull/30383) (2认同)

小智 1

目前我们也遇到同样的问题,但仅限于 IE11。

\n\n

更新 1:\n现在我可以告诉你,它与 Angular / TypeScript 版本有关。我将我们的应用程序从 8.2.14 / 3.5.3 恢复到 8.0.0 / 3.4.3,它再次开始工作。现在我们将进入不同的版本来找出是什么版本更改导致了问题。

\n\n

更新 2:\n在测试了 Angular 版本的多种组合后,我们发现这两个包导致了我们的问题:

\n\n

“@Angular-devkit/build-Angular”

\n\n

“@角度/cli”

\n\n

新创建的 Angular 8 项目使用以下版本:

\n\n

“@Angular-devkit/build-Angular”:“ 〜0.803.20

\n\n

“@Angular/cli”:“〜20年8月3日

\n\n

但在 8.3.x 中,它\xc2\xb4s 不起作用!将这两个包恢复到最新的 8.2.x 版本可以解决我们的问题!

\n\n

“@Angular-devkit/build-Angular”:“ 0.802.2

\n\n

“ @角度/cli”:“8.2.2 ”

\n