【问题标题】:Bootstrap Navbar wont toggleBootstrap 导航栏不会切换
【发布时间】:2017-10-12 01:41:07
【问题描述】:

您好,我无法弄清楚为什么我的导航栏菜单在导航栏折叠时没有打开。我正在使用 Angular 4 (cli)、Bootstrap 4.0.0-beta 和 sass。如果这很重要,我也在使用 ngx-bootstrap

html

<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top navbar-toggleable-md">
  <div class="container">
    <a class="navbar-brand" href="#">Test</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarResponsive">
      <ul class="navbar-nav ml-auto">
        <li class="nav-item">
          <a class="nav-link" [routerLink]="['/view']">View
            <span class="sr-only">(current)</span>
          </a>
        </li>
        <li class="nav-item">
          <a class="nav-link"[routerLink]="['/upload']">Upload</a>
        </li>
        <li class="nav-item dropdown" dropdown>
          <a dropdownToggle  class="nav-link dropdown-toggle">
            Print
          </a>
          <ul *dropdownMenu class="dropdown-menu" role="menu">
            <li role="menuitem"><a class="dropdown-item" (click)="onPrint(1)">Landscape</a></li>
            <li role="menuitem"><a class="dropdown-item" (click)="onPrint()">Portrait</a></li>
          </ul>
        </li>

      </ul>
    </div>
  </div>
</nav>

angular-cli.json

  "styles": [
    "../node_modules/bootstrap/dist/css/bootstrap.css",
    "styles.scss"
  ],
  "scripts": [
  ],

styles.scss

@import 'variables';
@import '../node_modules/bootstrap/scss/bootstrap';
@import '../node_modules/font-awesome/scss/font-awesome';

我还创建了一个 plunkr

http://embed.plnkr.co/2CYpsoQAQEOPljR17Pjq/

【问题讨论】:

    标签: twitter-bootstrap angular bootstrap-4


    【解决方案1】:

    您需要在页面中包含 JavaScript 文件:

    <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
    

    在他们的“入门”页面上,它会告诉您要包​​含哪些文件:

    https://v4-alpha.getbootstrap.com/

    【讨论】:

    • 啊,我明白了。我试图避免包含 jquery,因为我使用的是 angular。不包括它还有其他方法吗?
    • 不幸的是,如果您想使用任何涉及 JavaScript 的引导程序元素(导航会这样做)。从他们的文档中:“确保首先放置 jQuery 和 Tether,因为我们的代码依赖于它们”。如果你想避免在 Bootstraps 导航中使用 js,你可以考虑使用这样的东西:thednp.github.io/bootstrap.native
    • 将 jquery 包含到 Angular 应用程序中没有任何问题。特别是如果您尝试使用依赖于 jquery 的东西。只是不要在您的应用程序中使用本机 jquery。如果你真的不想包含 jquery,为什么不使用 material2?它的发展比 bootstrap4 更进一步
    猜你喜欢
    • 2020-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    • 2017-04-24
    相关资源
    最近更新 更多