twitter-bootstrap Bootstrap 导航栏无法正常工作:AngularCLI
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/48735689/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Bootstrap Navbar not working correctly: AngularCLI
提问by FrankTheTank
I included bootstrap into my angularcli project but when I try to include a navbar none of the elements are working correctly. I am using a standard boostrap navbar example from the website but it looks weird:
我将引导程序包含在我的 angularcli 项目中,但是当我尝试包含导航栏时,所有元素都无法正常工作。我正在使用网站上的标准 boostrap 导航栏示例,但它看起来很奇怪:
What is wrong with my project that is making the navbar not load correctly?
我的项目有什么问题导致导航栏无法正确加载?
navbar.component.html
导航栏.component.html
<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>
<a class="navbar-brand" href="#">Navbar</a>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</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>
</div>
</nav>
.angular-cli.json
.angular-cli.json
"styles": [
"../node_modules/bootstrap/dist/css/bootstrap.min.css",
"styles.css"
],
采纳答案by Ragavan Rajan
There are some known issues in bootstrap 4 especially in navbar implemenation
bootstrap 4 中存在一些已知问题,尤其是在导航栏实现中
Hence uou have to install bootstrap [email protected]
因此你必须安装引导程序 [email protected]
if you are using npm then the following libraries is best recommonded
如果您使用的是 npm,那么最好推荐以下库
npm install [email protected] --save
npm install [email protected] tether jquery --save
In .angular-cli.json file add the dependencies
在 .angular-cli.json 文件中添加依赖项
"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"
],
Use the following HTML
使用以下 HTML
<nav class="navbarnavbar-inverse">
<div class="container">
<div class="navbar-header">
<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>
<a class="navbar-brand" href="#">Angular5Website</a>
</div>
<div id="navbar" class="collapsenavbar-collapse">
<ul class="navnavbar-nav">
<li class="active"> <a href="#">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</div><!--/.nav-collapse-->
</div>
</nav>
回答by ConnorsFan
The code below shows how to implement the navbar in Angular with ng-bootstrapand Bootstrap 4. You can see it at work in this plunker.
下面的代码显示了如何使用ng-bootstrap和 Bootstrap 4在 Angular 中实现导航栏。您可以在这个 plunker 中看到它的工作情况。
- The
ng-bootstraplibrary is developped for Angular, and does not require jQuery - Using Bootstrap 4, you should replace
navbar-toggleable-mdwithnavbar-expand-md - The
ngbCollapsedirective is used to show/hide the dropdown menu
- 该
ng-bootstrap库是为 Angular 开发的,不需要 jQuery - 使用 Bootstrap 4,您应该替换
navbar-toggleable-md为navbar-expand-md - 该
ngbCollapse指令用于显示/隐藏下拉菜单
<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>
<a class="navbar-brand" href="#">Navbar</a>
<div [ngbCollapse]="isNavbarCollapsed" class="navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</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>
</div>
</nav>
回答by Aleksandar Petrovic
navbar.component.html:
导航栏.component.html:
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" (click)="toggleNavbarCollapsing()">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a routerLink="/" class="navbar-brand">Navbar</a>
</div>
<div class="navbar-collapse" [class.collapse]="navbarCollapsed">
...
navbar.component.ts:
导航栏.component.ts:
navbarCollapsed = true;
toggleNavbarCollapsing() {
this.navbarCollapsed = !this.navbarCollapsed;
}


