【问题标题】:Toggle button not working in bootstrap 4 and angular 7 app for navbar切换按钮在导航栏的引导程序 4 和 Angular 7 应用程序中不起作用
【发布时间】:2022-02-04 15:41:12
【问题描述】:

我正在使用 Angular7 和 Botstrap4。 尝试在我的应用中添加导航栏,当导航栏折叠时,切换按钮不起作用。

我不想添加 ng-bootstrap,只添加 bootstrap4。

这是我的代码

<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <a class="navbar-brand" href="#">{{title}}</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarTogglerDemo02">
    <ul class="navbar-nav mr-auto mt-2 mt-lg-0">
      <li class="nav-item active">
        <a class="nav-link" routerLink="home">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" routerLink="about">About Us</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" routerLink="contact">Contact Us</a>
      </li>
    </ul>

    <form class="form-inline my-2 my-lg-0">
      <input class="form-control mr-sm-2" type="search" placeholder="Search">
      <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
    </form>
  </div>
</nav>

【问题讨论】:

  • 你导入了 BootstrapJS 文件吗?

标签: html css bootstrap-4 angular7


【解决方案1】:

我认为您忘记在 angular.json 中包含 bootstrap.min.jsjquery.min.jspopper.min.js 文件链接,您已经在其中放置了 bootstrap.min.css

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

【讨论】:

    【解决方案2】:

    解决此问题的简单方法是将 jquery、popper 和 bootstrap 的脚本导入应用程序的 index.html 文件中。这样做将允许您的导航栏下拉折叠导航链接。

    我这样做了,它对我来说效果很好。 请参阅下面的示例

    <!doctype html>
    <html lang="en">
    
    <head>
      <meta charset="utf-8">
      <title>TestApp</title>
      <base href="/">
    
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="icon" type="image/x-icon" href="favicon.ico">
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    
    
    
      <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"
        integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous">
      </script>
      <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
        integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous">
      </script>
      <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
        integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous">
      </script>
    </head>
    
    <body>
      <app-root></app-root>
    </body>
    
    </html>

    【讨论】:

      【解决方案3】:

      对于我在 Angular 13 应用程序中的情况,我必须将 data-bs-toggle 更改为 data-toggle 并将 data-bs-dismiss 更改为 data-dismiss 以获得关闭按钮,并且效果很好。

      【讨论】:

        猜你喜欢
        • 2020-10-30
        • 1970-01-01
        • 2018-02-01
        • 1970-01-01
        • 2016-09-04
        • 1970-01-01
        • 1970-01-01
        • 2018-04-24
        相关资源
        最近更新 更多