Bootstrap 4.1.1 导航栏不适用于 Angular 6 [英] Bootstrap 4.1.1 Navbar not working with Angular 6

查看:32
本文介绍了Bootstrap 4.1.1 导航栏不适用于 Angular 6的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在尝试使用 Bootstrap 4.1.1 和 Angular 6 处理带有折叠菜单和下拉链接的导航栏,但不知何故导航栏根本不起作用.我可以正确地看到元素,但它们没有按预期运行.

我使用 'ng install bootstrap --save' 和 Bootstrap 依赖项通过 Angular CLI 安装了 Bootstrap:'ng install jquery --save' 和 'ng install popper.js --save'

我还在 package.json 和 angular.json 中包含了 Bootstrap、jquery 和 popper.js

package.json:

依赖项":{"@angular/animations": "^6.0.0","@angular/common": "^6.0.0","@angular/compiler": "^6.0.0","@angular/core": "^6.0.0","@angular/forms": "^6.0.0","@angular/http": "^6.0.0","@angular/platform-b​​rowser": "^6.0.0","@angular/platform-b​​rowser-dynamic": "^6.0.0","@angular/router": "^6.0.0","引导程序": "^4.1.1","core-js": "^2.5.4","jquery": "^3.3.1","popper.js": "^1.14.3","rxjs": "^6.0.0",zone.js":^0.8.26"},开发依赖":{"@angular-devkit/build-angular": "~0.6.0","@angular/cli": "~6.0.0","@angular/compiler-cli": "^6.0.0","@angular/language-service": "^6.0.0","@types/jasmine": "~2.8.6","@types/jasminewd2": "~2.0.3","@types/jquery": "^3.3.2","@types/node": "~8.9.4","codelyzer": "~4.2.1","jasmine-core": "~2.99.1","jasmine-spec-reporter": "~4.2.1",业力":~1.7.1","karma-chrome-launcher": "~2.2.0","karma-coverage-istanbul-reporter": "~1.4.2","karma-jasmine": "~1.1.1","karma-jasmine-html-reporter": "^0.2.2",量角器":~5.3.0","ts-node": "~5.0.1","tslint": "~5.9.1",打字稿":~2.7.2"}

angular.json:

 "样式": ["./node_modules/bootstrap/dist/css/bootstrap.min.css",源代码/样式.css"],脚本":["./node_modules/jquery/dist/jquery.min.js","./node_modules/popper.js/dist/popper.min.js",./node_modules/bootstrap/dist/js/bootstrap.min.js"]

html:

</nav>

我更喜欢使用 Bootstrap 原生库,我宁愿不使用 ng-bootstrap 也不使用像在 head-tag 中包含 CDN 这样的 hacks.

我在这里做错了吗?任何有关如何解决此问题的建议将不胜感激.

解决方案

只需在脚本中添加 umd 目录 popper.

 "./node_modules/popper.js/dist/umd/popper.min.js",

I have been trying to work on Navbar with collapse menu and dropdown link using Bootstrap 4.1.1 and Angular 6 but somehow Navbar is not working at all. I can see elements correctly but they don't function as intended.

I installed Bootstrap via Angular CLI using 'ng install bootstrap --save' and Bootstrap dependencies: 'ng install jquery --save' and 'ng install popper.js --save'

I also included Bootstrap, jquery and popper.js in package.json and angular.json

package.json:

"dependencies": {
  "@angular/animations": "^6.0.0",
  "@angular/common": "^6.0.0",
  "@angular/compiler": "^6.0.0",
  "@angular/core": "^6.0.0",
  "@angular/forms": "^6.0.0",
  "@angular/http": "^6.0.0",
  "@angular/platform-browser": "^6.0.0",
  "@angular/platform-browser-dynamic": "^6.0.0",
  "@angular/router": "^6.0.0",
  "bootstrap": "^4.1.1",
  "core-js": "^2.5.4",
  "jquery": "^3.3.1",
  "popper.js": "^1.14.3",
  "rxjs": "^6.0.0",
  "zone.js": "^0.8.26"
},
"devDependencies": {
  "@angular-devkit/build-angular": "~0.6.0",
  "@angular/cli": "~6.0.0",
  "@angular/compiler-cli": "^6.0.0",
  "@angular/language-service": "^6.0.0",
  "@types/jasmine": "~2.8.6",
  "@types/jasminewd2": "~2.0.3",
  "@types/jquery": "^3.3.2",
  "@types/node": "~8.9.4",
  "codelyzer": "~4.2.1",
  "jasmine-core": "~2.99.1",
  "jasmine-spec-reporter": "~4.2.1",
  "karma": "~1.7.1",
  "karma-chrome-launcher": "~2.2.0",
  "karma-coverage-istanbul-reporter": "~1.4.2",
  "karma-jasmine": "~1.1.1",
  "karma-jasmine-html-reporter": "^0.2.2",
  "protractor": "~5.3.0",
  "ts-node": "~5.0.1",
  "tslint": "~5.9.1",
  "typescript": "~2.7.2"
}

angular.json:

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

html:

<nav class="navbar navbar-expand-md navbar-light bg-light">
    <a href="#" class="navbar-brand">RecipeBook</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsing-nav-bar" aria-controls="collapsing-nav-bar"
        aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="collapsing-nav-bar">
        <ul class="navbar-nav mr-auto">
            <li class="nav-item">
                <a href="#" class="nav-link">Recipes</a>
            </li>
            <li class="nav-item">
                <a href="#" class="nav-link">Shopping list</a>
            </li>
        </ul>
        <ul class="navbar-nav">
            <li class="nav-item dropdown">
                <a href="#" class="nav-link dropdown-toggle" id="dropdownMenu" data-toggle="dropdown" 
                aria-haspopup="true" aria-expanded="false">
                    Manage
                </a>
                <div class="dropdown-menu" aria-labelledby="dropdownMenu">
                    <a href="#" class="dropdown-item">Save</a>
                    <a href="#" class="dropdown-item">Fetch</a>
                </div>
            </li>
        </ul>
    </div>
</nav>

I prefer using Bootstrap native library and I rather not use ng-bootstrap nor hacks like including CDNs in head-tag.

Am I doing something wrong here ? Any advice on how to solve this would be appreciated.

解决方案

just add umd directries popper in script.

 "./node_modules/popper.js/dist/umd/popper.min.js",

这篇关于Bootstrap 4.1.1 导航栏不适用于 Angular 6的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
其他开发最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆