Bootstrap Navbar not working correctly: AngularCLI
我在我的angularcli项目中包含了引导程序,但是当我尝试包含导航栏时,所有元素都无法正常工作。我正在使用网站上的标准boostrap navbar示例,但看起来很奇怪:
我的项目出现了什么问题,导致导航栏无法正确加载?
navbar.component.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <nav class="navbar navbar-toggleable-md navbar-light bg-faded"> <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> Navbar <ul class="navbar-nav mr-auto"> <li class="nav-item active"> Home <span class="sr-only">(current)</span> </li> <li class="nav-item"> Link </li> <li class="nav-item"> Disabled </li> </ul> <form class="form-inline my-2 my-lg-0"> <input class="form-control mr-sm-2" type="text" placeholder="Search"> <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button> </form> </nav> |
.angular-cli.json
1 2 3 4 | "styles": [ "../node_modules/bootstrap/dist/css/bootstrap.min.css", "styles.css" ], |
下面的代码显示了如何使用ng-bootstrap和Bootstrap 4在Angular中实现导航栏。您可以在此插件中看到它。
-
ng-bootstrap 库是为Angular开发的,不需要jQuery -
使用Bootstrap 4,应将
navbar-toggleable-md 替换为navbar-expand-md -
ngbCollapse 指令用于显示/隐藏下拉菜单
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <nav class="navbar navbar-expand-md navbar-light bg-faded"> <button class="navbar-toggler navbar-toggler-right" type="button" (click)="isNavbarCollapsed = !isNavbarCollapsed" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> Navbar <ul class="navbar-nav mr-auto"> <li class="nav-item active"> Home <span class="sr-only">(current)</span> </li> <li class="nav-item"> Link </li> <li class="nav-item"> Disabled </li> </ul> <form class="form-inline my-2 my-lg-0"> <input class="form-control mr-sm-2" type="text" placeholder="Search"> <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button> </form> </nav> |
引导4中存在一些已知问题,尤其是在导航栏实现中
因此您必须安装引导程序
如果您使用的是npm,则最好重新建议以下库
1 2 3 |
在.angular-cli.json文件中添加依赖项
1 2 3 4 5 6 7 8 9 10 | "styles":[ "styles.css", "../node_modules/bootstrap/dist/css/bootstrap.css" ], "scripts":[ "../node_modules/jquery/dist/jquery.js", "../node_modules/tether/dist/js/tether.js", "../node_modules/bootstrap/dist/js/bootstrap.js" ], |
使用以下HTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <nav class="navbarnavbar-inverse"> <button type="button" class="navbar-togglecollapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Togglenavigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> Angular5Website <ul class="navnavbar-nav"> <li class="active"> Home </li> <li> About </li> <li> Contact </li> </ul> <!--/.nav-collapse--> </nav> |
navbar.component.html:
1 2 3 4 5 6 7 8 9 10 11 12 | <nav class="navbar navbar-default"> <button type="button" class="navbar-toggle" (click)="toggleNavbarCollapsing()"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> Navbar ... |
navbar.component.ts:
1 2 3 4 5 | navbarCollapsed = true; toggleNavbarCollapsing() { this.navbarCollapsed = !this.navbarCollapsed; } |